Delfigamer
> Но на самом деле всё это нихрена не важно, потому что самая главная мысль
> вообще не в синглетонах.
> Ничто не даёт никаких гарантий, если программист не приложит волевых усилий к
> соблюдению соответствующих правил.
бла бла бла
Delfigamer
> Твой синглетон работает только при условии, если программист не полезет ему в
> кишки и не поломает.
ну так попробуй, залезь.
я тебе с самого начала предложил продемонстрировать на практике,
как ты это сделаешь.
но ты ж только балаболить можешь.
Delfigamer
> ты никогда не сможешь запретить ему открыть дебаггер, раздизасмить весь твой
> код
казалось бы: и при чем здесь синглетон?
Delfigamer
> но бухой вооружённый вдвшник точно так же наплюёт на все твои гарантии,
> выломает дверь гранатой и сделает столько экземпляров, сколько ему захочется -
> хоть два, хоть двести, хоть сто тысяч пятьсот, и ничего ты ему не сделаешь,
> хоть заинкапсулируйся.
бла бла бла.
только вот ты до сих пор ни одного не сделал.
только языком чесать мастер.
NetSpider
> Ты в курсе хоть что в споре указывать на ошибки в тексте - последнее прибежище
> дешевого тролля?
ты пьяный что ли?
во-первых, я с тобой не спорил.
а во-вторых, я тебе ни на какие ошибки не указывал.
NetSpider
> По существу ответь или промолчи уж.
в твоём наитупейшем сообщении "существо" не обнаруживается.
Delfigamer
> термин "инкапсуляция", как и любой другой паттерн
"инкапсуляция" не является "паттерном".
totoro
> ты точно знаешь, что означает этот термин?
а ты?
по ссылке с викки, которую ты ж сам и привел:
В общем случае в разных языках программирования термин «инкапсуляция» относится к одной или обеим одновременно следующим нотациям:
- механизм языка, позволяющий ограничить доступ одних компонентов программы к другим;
- языковая конструкция, позволяющая связать данные с методами, предназначенными для обработки этих данных.
Слово «инкапсуляция» происходит от латинского in capsula — «размещение в оболочке». Таким образом, инкапсуляцию можно интуитивно понимать как изоляцию, закрытие чего-либо инородного с целью исключения влияния на окружающее, обеспечение доступности главного, выделение основного содержания путём помещения всего мешающего, второстепенного в некую условную капсулу (чёрный ящик).
суть "инкапсуляции" - изолировать детали реализации от внешнего мира.
в некоторых языках, таких как с++,
для этого есть встроенный в сам язык механизм.
в других, таких как, например, ущербный си,
аналогичный эффект достигается за счет трюка с сокрытием информации.
утверждать, будто бы на процедурном си нельзя использовать инкапсуляцию,
только потому что там нет крестанутых классов - это надо быть клиническим идиотом.
Delfigamer
> блин, сейчас ругаться и оскорблять буду. Условие "Ctrl-C Ctrl-V описание" ты
> специально пропустил мимо глаз? Ты не понял, о каком описании идёт речь?
конечно понял.
именно поэтому, специально для тебя,
я решил на всякий случай уточнить:
> ожидаю от тебя рабочий, корректный код.
на случай, если тебе вдруг не очевидно,
что код должен быть рабочим и корректным.
т.е. не получится просто так взять, и от балды сделать:
> Ctrl-C Ctrl-V описание
далее, ты пишешь:
> В той мере, как ты написал выше, я могу ответить тебе просто
> struct some* createAnotherInstance();
не можешь.
потому что по условию задачи,
ты должен сделать два валидных объекта some.
два валидных some сами себя не сделают.
мне без разницы как именно ты это организуешь.
какие функции, или хаки ты будешь использовать.
но в результате, у тебя должен получиться корректный рабочий код,
который продуцирует два валидных объекта.
Delfigamer
> Undefined reference to getInstance
очевидно жеж: ты просто не подлючил библиотеку.
это не делает сам код ни не_корректным, ни не_рабочим.
фокус в том, что тебе и не нужно её подключать только для того,
что бы продемонстрировать кунг-фу с Пабликом-Морозовым.
в этой ситуации умный человек признает:
действительно, не имея никакой информации о структуре,
не получится никак подкрутить ей гайки.
и только тупой человек будет тупо, как баран упираццо,
мол де, да мы как бухнем в Пабликом-Морозовым, так сразу и начнем:
> Delfigamer
> бухой вооружённый вдвшник точно так же
> наплюёт на все твои гарантии, выломает дверь гранатой и сделает столько
> экземпляров, сколько ему захочется - хоть два, хоть двести, хоть сто тысяч
> пятьсот, и ничего ты ему не сделаешь, хоть заинкапсулируйся.
ну-ну.
Kartonagnick
> утверждать, будто бы на процедурном си нельзя использовать инкапсуляцию,
> только потому что там нет крестанутых классов - это надо быть клиническим
> идиотом.
Я не говорил, что в процедурных языках ее нет, я говорил, что на уровне объектов в языке си ее нет, потому что и объектов там никаких нет. А вот чтобы притащить за уши определение объекта из объектно-ориентированного языка, где по сути все что угодно является объектом, к процедурному - это надо быть клиническим идиотом.
Kartonagnick
> Объект – это область памяти. Объект имеет класс памяти, определяющий его время
> жизни. Смысл значения, обнаруженного в объекте, определяется типом имени,
> ипользованного для доступа к нему.
> (ц) Труп Страуса[/quote]
totoro
> я говорил, что на уровне объектов в языке си ее нет
что такое "инкапсуляция на уровне объекта" ?
ты писал:
> Но в языке си нет инкапсуляции и сокрытия данных т.к. это процедурный язык o_O
в этой наркоманской фразе даже намека нет ни на какие объекты.
totoro
> А вот чтобы притащить за уши определение объекта из объектно-ориентированного
> языка, где по сути все что угодно является объектом, к процедурному - это надо
> быть клиническим идиотом.
не распарсил этот поток сознания.
так же не понятно,
зачем ты присовокупил к своему сообщению цитату Страуструпа.
Kartonagnick
> totoro
> > По каким критериям эта конструкция не имеет отношения к синглтону?
> ты осознаешь насколько тупым выглядит твой вопрос со стороны?
> особенно в свете твоих же собственных цитат:
>
> totoro
> > Гарантирует, что у класса есть только один экземпляр
>
> ты отдаешь себе отчет в том, что код, который ты представил,
> никому и ничего не гарантирует?
А ты отдаешь себе отчет в том, что сам себе противоречишь?
Потому что если в языке си существует инкапсуляция, хотя бы на уровне модулей.
То представленная мной реализация синглтона предоставляет все необходимые гарантии.
Kartonagnick
> что такое "инкапсуляция на уровне объекта" ?
Инкапсуляция полей и методов объекта класса.
totoro
> А ты отдаешь себе отчет в том, что сам себе противоречишь?
ни в одном из моих тезисов нет никаких противоречий.
> Потому что если в языке си существует инкапсуляция, хотя бы на уровне модулей.
> То представленная мной реализация синглтона предоставляет все необходимые
> гарантии.
нет никаких "то".
представленный тобой код никак не гарантирует единственность экземпляра,
а значит не может быть синглетоном по определению понятия "синглетон".
ты реально в танке?
или просто не умеешь признавать свои ошибки?
totoro
> Инкапсуляция полей и методов объекта класса.
инкапсуляция полей и методов - это свойство класса, а не объекта.
Kartonagnick
> представленный тобой код никак не гарантирует единственность экземпляра,
> а значит не может быть синглетоном по определению понятия "синглетон".
Довел код до рабочего состояния, попробуй нарушить "гарантии" того факта, что это таки синглтон
https://ideone.com/jCLxUn
Kartonagnick
> бла бла бла
totoro
> Довел код до рабочего состояния, попробуй нарушить "гарантии" того факта, что
> это таки синглтон
totoro
> У меня нет времени на то, чтобы попытаться разобраться в этой демагогии
практика показывает, что у тебя достаточно времени,
что бы писать всякую чушь на ГД
Kartonagnick
> пожалуйста
Rejected.
Либо убери неиспользуемые переменные, либо допиши код до рабочего состояния.
> практика показывает, что у тебя достаточно времени,
> что бы писать всякую чушь на ГД
Я на ГД вообще не припоминаю чтобы что-нибудь писал, только во флейме.
Тема в архиве.