Войти
ФлеймФорумРазработка игр

Паттерно-служители welcome to the hell (16 стр)

Страницы: 112 13 14 15 16 17 Следующая »
#225
(Правка: 22:55) 22:55, 15 июня 2021

Kartonagnick

> я же просил ничего мне не писать
Ты разве слушаешь, когда тебя просят чушь не пороть? Не слушаешь.

> ты нормальных слов не понимаешь
Так что с движками-то сетевыми? Уже понял, какую хрень сморозил?


#226
(Правка: 8:05) 8:04, 16 июня 2021

Ghost2
> Так что с движками-то сетевыми? Уже понял, какую хрень сморозил?
https://github.com/facebookarchive/RakNet/search?q=EndianSwapBytes
https://github.com/facebookarchive/RakNet/search?q=DoEndianSwap

+ Показать
#227
9:59, 16 июня 2021

Aroch

Если используются битстримы, ещё и сжимаемые, то пофигу как хранить данные, хоть нативно, хоть биты внутри переворачивать - это просто соглашение. При этом сам ракнет конечно позволяет все это не использовать, а тупо отсылать по указателю и никаким образом не настаивает на использовании конкретного порядка. И, как я понял, он даже внутри там смешанный.
Просто изначально была сказана фраза типа «все уважающие себя сетевые движки переворачивают байты».

#228
13:05, 16 июня 2021

Ghost2
за "все" судить не берусь, но в большинстве как минимум такой функционал поддерживается. Ракнет таки переворачивает, ведь нигде не говорилось что "сетевые движки" переворачивает их на любой чих везде и всюду раз уж придираться к словам.

#229
(Правка: 13:52) 13:51, 16 июня 2021

Kartonagnick
> "строгое ООП" - никому не всравшийся сферический конь в ваккуме.

Синглетоны изобрели в ЯП в которых строгое ООП прибито гвоздями. Типа джавы. Потому что как я говорил, так как в таких языках нет другой возможности писать в процедурном стиле, придумали пихнуть все в сигнелтон. Ну еще как объекты которым нельзя быть больше одного, типа конфига и т.д.

> если вкратце: на языке си синглетоны не нужны.
Правильно, в языках в котором отсутствует ооп как в каждой жопе затычка - сигнелтоны не нужны. С этим хорошо справляются модули, нейспейсы.

kipar
> У синглтона две стороны: первая это невозможность создать второй экземпляр,

А если в программе нужно создавать не более двух экземпляров, то как это называется?  Дубльтон?
Зачем придумывать отдельные названия таким простым вещам. А я ответ дал на этот вопрос - это красивый способ сделать вид что это не процедурщина.

> а вторая - возможность получить к экземпляру доступ откуда угодно
Ну вот, о чем я говорил. Уже изобрели глобальщину. Когда изобретут goto, это назовут Гототон.

#230
(Правка: 13:58) 13:53, 16 июня 2021

Aroch

> такой функционал поддерживается
В том и вопрос, что это не функционал, а внутреннее устройство. Как сетевой стек ОС внезапно оперирует всеми значениями именно в сетевом порядке. Зачем нужен BE порядок уже лет двадцать сказать никто не может. Кроме того, что он есть и диссекторы под wireshark на нем писать немного быстрее. Что, между прочим, тоже напрямую следует из того, что когда-то бородатым дядькам просто было так удобнее.

#231
(Правка: 18:37) 18:30, 16 июня 2021

NetSpider
> Ну еще как объекты которым нельзя быть больше одного, типа конфига и т.д.
раньше было красивее название "глобальные переменные" :)

NetSpider
> так как в таких языках нет другой возможности писать в процедурном стиле
чтобы писать в "процедурном стиле" нужне не синглтоны, а статические методы (в делфи терминологии классовые-методы)
Когда метод можно вызвать (без создания инстанса)
А нет инстанса - уже и не синглтон паттерн.

NetSpider
> А если в программе нужно создавать не более двух экземпляров, то как это называется?  Дубльтон?
а есть ли пример таких случаев, когда "не более двух"?
Синглтон очень часто завязан на среду исполнения программы. типа класс Application. Он может быть только один, потому что увязан на один текущий процесс с одной текущей очередью сообщений.
Или какой-нить Environment, который держить "CurrentWorkingDirectory", который сам насаждён системным API.

#232
18:46, 16 июня 2021

skalogryz

> а есть ли пример таких случаев, когда "не более двух"?
Можно придумать. В воспалённом сознании любителей антипаттернов может какое-нибудь резервирование возникнуть, где ровно два объекта должны друг друга функционально заменять.

#233
19:36, 16 июня 2021

Ghost2
> Можно придумать. В воспалённом сознании любителей антипаттернов может
> какое-нибудь резервирование возникнуть, где ровно два объекта должны друг друга
> функционально заменять.

struct ExactlyTwoObjects {
    Object[2] objects;
}

ExactlyTwoObjects getInstance();
#234
19:39, 16 июня 2021

99 инсайт, синглетоны - это корневое множество в графе владения.

#235
7:40, 17 июня 2021

Ghost2
> В том и вопрос, что это не функционал, а внутреннее устройство.
то есть публичные методы это уже внутреннее устройство? 🤦‍♂️

#236
9:07, 17 июня 2021

Aroch

> то есть публичные методы это уже внутреннее устройство?
Да, представь себе. Как функции htons/htonl.

#237
10:22, 17 июня 2021

Т.е. "синглтон" - настолько полезное понятие, что полтора десятка страниц ушло на примерное понимание его смысла?

#238
11:15, 17 июня 2021

Ghost2
> Да, представь себе. Как функции htons/htonl.
по такой логике всё можно обозвать внутренним устройством все что уровнем ниже main. Вся работа с сетевым движком также внутреннее устройство, ну а что.

#239
(Правка: 11:38) 11:36, 17 июня 2021

Aroch

Ну вот смотри, там ниже по твоей ссылке:

Note that when sending structures, RakNet assumes the timeStamp is in network order. You would have to use the function BitStream::EndianSwapBytes() on the timeStamp field to make this happen.

Это нужно чтобы отправлять «свои» структуры со штампом времени в стиле raknet и напрямую связано с внутренним устройством этой библиотеки (тем, как она упаковывает битстрим). Вне этого устройства передаётся от пользователя обычная структура с нативным порядком.

Страницы: 112 13 14 15 16 17 Следующая »
ФлеймФорумРазработка игр