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

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

Страницы: 111 12 13 14 15 16 Следующая »
#195
14:24, 15 июня 2021

Kartonagnick
> основная и достаточная.
не уверен.
У синглтона две стороны: первая это невозможность создать второй экземпляр, а вторая - возможность получить к экземпляру доступ откуда угодно (без необходимости прокидывать его через параметры функции).
И именно вторая сторона обычно нужна - всякие логгеры, конфигураторы и прочие синглтоны в реальных программах. Кому в здравом уме придет идея создавать второй объект конфигурации или логгер? А даже если и придет - что в этом плохого?
Что на самом деле нужно - чтобы можно было выводить в лог и учитывать параметры конфигурации не передавая объекты в явном виде.

Вполне можно придумать "синглтон" который можно будет создать только один раз (да просто assert добавить в конструктор), но без собственно статического getInstance он будет никому не нужен.

#196
14:28, 15 июня 2021

Казалось бы, люди должны быть склонны прощать другим те грехи, которыми обладают сами. По типу - "да ладно, не страшно, даже я сам иногда делаю так же".
Но вот в интернете уже не первый раз замечаю как раз строго обратную ситуацию - человек обвиняет меня в каком-то недостатке, при этом сам же являясь жирнейшим представителем. Я предполагаю, что это такой побочный эффект от недостаточного осознавания того факта, что разные люди могут мыслить по-разному - пытаясь понять мою мотивацию, они подставляют самих себя, видят, как совершают в этой ситуации какую-нибудь нехорошую вещь, и, соответственно, начинают думать, что я в этой же ситуации именно эту нехорошую вещь и делаю. Разумеется, при этом совершенно упуская из головы тот факт, что этот человек и я - это два разных человека, о моей ситуации они совершенно ничего не знают, и моё отношение к жизни может быть совершенно другое.
Наверно, разница происходит оттого, что, поскольку в интернете никто никого не знает и на дуэль не вызывает, то и желание оправдать самого себя оказывается приглушённым - тогда как в личной беседе человек бы подумал "а вдруг потом за то же самое накажут меня самого?", и стал бы занижать серьёзность этого недостатка; в интернете этой мысли не возникает и обвинения идут в полную нефильтрованную силу.
Чтобы не показывать на людей пальцами, о прошлых случаях рассказывать не буду.
Но скажу, что на этот раз, очень много обвинений стало исходить от Картонажника - как по поводу профессиональной квалификации, так и по личностным качествам.

#197
14:30, 15 июня 2021

kipar
> И именно вторая сторона обычно нужна
ещё один.
откуда вы только такие беретесь?

если тебе просто нужна глобальная точка доступа,
то возьми обычную глобальную переменную.
синглетон для этого не нужен.

#198
14:35, 15 июня 2021

kipar
> Кому в здравом уме придет идея создавать второй объект конфигурации или логгер?
> А даже если и придет - что в этом плохого?

что-то подобное уже было.
не задолго до чернобыльской.

мне лень по новому кругу писать одно и тоже.
о взаимосвязи "гарантий" и "здравого смысла"
я подробно уже расписал несколько страничек назад.

+ Показать
#199
14:35, 15 июня 2021

Kartonagnick
Повторю, у синглтона две стороны. Если убрать глобальную точку доступа (и оставить гарантию единственного создания) - это не синглтон.

#200
14:44, 15 июня 2021

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

+ Показать
#201
14:59, 15 июня 2021
Изображение
#202
15:01, 15 июня 2021

kipar
> но без собственно статического getInstance он будет никому не нужен.

рассмотрим дешман времен с++03

// some.cpp

namespace // <—- собственность ед. трансляции
{
    struct { int ololo; } singleton; // <—- у структуры нет имени
}

... 

void blablabla()
{
    singleton.ololo; // <—- только для местных
}

объект безымяной структуры - это такой способ дешево и сердито
замутить синглетон.

у него есть свои проблемы, свои противопоказания.
зато он оч легко изготавливается.

важно два момента, на которые я хочу обратить твоё внимание:

1. getInstance - это особенность реализации одной конкретной модели.
    есть и другие модели, которые прекрасно обходятся без него.

2. как правило, область видимости синглетона ограничивается файлом.
    а вот глобальный синглетон, как правило, как раз таки не нужен.

+ Показать
#203
15:03, 15 июня 2021

gudleifr
Ты не в тренде, сейчас модно вот так

+ Показать
#204
15:13, 15 июня 2021

kipar
> Повторю, у синглтона две стороны. Если убрать глобальную точку доступа (и
> оставить гарантию единственного создания) - это не синглтон.

нет, это будет сингелтон.
просто с ограниченной областью видимости.

+ Показать

а вот если решишь убрать гарантии единственности экземпляра,
вот тогда возникнет резонный вопрос:
а нафига он тебе такой вообще тогда нужен?

#205
15:15, 15 июня 2021

totoro
> сейчас модно вот так

Какие-то странные. Как бы я их там сортировал-то? Мне завтра на работу!! (c)

#206
15:27, 15 июня 2021

totoro
> Поэтому переменные перед использованием сами себя не проинициализируют.
1. в с/с++ не_локальные статические объекты
    всегда инициализируются
    (по умолчанию - нулем)

2. в с/с++ поддерживается агрегатная инициализация.

+ Показать

totoro
> Кстати static initialization order fiasco там отсутствует именно по этой
> причине.
нет, не по этой.

+ Показать
#207
16:06, 15 июня 2021

Kartonagnick
> мне лень по новому кругу писать одно и тоже.
> о взаимосвязи "гарантий" и "здравого смысла"
Кстати можно было бы еще подискутировать по этому поводу т.к. не все гарантии одинаково полезны, здравый смысл все-таки нельзя полностью исключать. В качестве примера достаточно вспомнить драму вокруг Actix web.

#208
16:08, 15 июня 2021

totoro
> Кстати можно было бы еще подискутировать по этому поводу т.к. не все гарантии
> одинаково полезны,
ты за балаболку ответь сначала.

#209
20:13, 15 июня 2021

Kartonagnick

> затея - фуфо
Лаконично, всего двумя словами, ты обрисовал факт своего присутствия на этом форуме.

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

Delfigamer

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

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

Тема в архиве.