Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 479 480 [481] 482 483 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#7201
,
|
|
|
|
Тогда все еще хуже |
|
Сообщ.
#7202
,
|
|
|
|
D_KEY, короче, я смотрю у тебя еще есть ягоды в ягодицах, но я честно говоря сильно устал от которого уже по счету круга?
Добавлено Цитата D_KEY @ Тогда все еще хуже Нет, все просто замечательно в рамках исповедуемой философии. А сишная философия либо сама по себе ни пришей кобыле хвост, либо просто совсем не подходит для тех случаев, с которыми я привык иметь дело. И да, ни ты, ни флекс, никто еще в этой теме так и не раскрыл понятия "правильная/неправильная или плохо/хорошо" |
|
Сообщ.
#7203
,
|
|
|
|
Цитата --Ins-- @ Все, что используешь в своих виртуальных методах и боишься что на этапе конструирования может не быть - инициализируй до. Именно к этому вы потом и пришли. Может конкретно ты придерживался этой позиции всегда - не помню/не знаю Цитата Лень выдумывать. Есть код в базовом классе, который вызывает виртуальный метод. Ты его перекрываешь так, как проектировщик класса не рассчитывал. Разгребай. Ну, или лезь в код предка, но как я понял - тут программисту следует застрелиться Если я что-то испорчу - это будут мои же проблемы. А в вашем случае мне испортит предок, вызвав мой метод объекта с (возможно) несоблюденными инвариантами... |
|
Сообщ.
#7204
,
|
|
|
|
"Но если туп как дерево, родишься бао-бабом, и будешь бао-бабом 300 лет пока помрешь" (С)
Это я о себе, Borland & "сыновья", и всех, имевших несчастье "связаться" с дельфи и VCL. Нас "великий и могучий" D_KEY считает полными идиотами и инвалидами детства на костылях. Что ж поделом нам, ведь из нашего окна та сама площадь не видна... |
|
Сообщ.
#7205
,
|
|
|
|
Цитата leo @ Нас "великий и могучий" D_KEY считает полными идиотами и инвалидами детства на костылях. Что ж поделом нам, ведь из нашего окна та сама площадь не видна... Открою секрет D_KEY он как китайский сервер - если ему долго в разных вариантах говорить, что его пароль "maoczedun", то есть не нулевой шанс, что он согласиться |
|
Сообщ.
#7206
,
|
|
|
|
Цитата --Ins-- @ D_KEY, короче, я смотрю у тебя еще есть ягоды в ягодицах, но я честно говоря сильно устал от которого уже по счету круга? Наверно пятого как раз Я затеял из-за новых(?) людей, думал что-то новое услышать.Цитата Нет, все просто замечательно в рамках исповедуемой философии "Философия каши" Цитата И да, ни ты, ни флекс, никто еще в этой теме так и не раскрыл понятия "правильная/неправильная или плохо/хорошо" Разделение уровней и обязанностей - это хорошо, смешивание всего в одном месте - плохо Добавлено Цитата leo @ Нас "великий и могучий" D_KEY считает полными идиотами и инвалидами детства на костылях. Нет Так аргументов не будет? |
|
Сообщ.
#7207
,
|
|
|
|
Цитата D_KEY @ "Философия каши" Я честно, никогда не пойму что когда я пишу "создать объект окно" происходит: создается объект "объект", создается объект "компонент", создается объект "контрол", создается объект "окно". Вот это - выше моих возможностей. Я ведь просил создать один объект - окно, который просто наследует от предков интерфейс и реализацию. И у тебя после этого язык пошевелился заявить о каше? |
|
Сообщ.
#7208
,
|
|
|
|
Цитата --Ins-- @ Вот это - выше моих возможностей. Я ведь просил создать один объект - окно, который просто наследует от предков интерфейс и реализацию. Плохо. Читай про контракты и инварианты. Может и с юнит-тестированием легче дело пойдет. |
|
Сообщ.
#7209
,
|
|
|
|
Цитата D_KEY @ Плохо. Читай про контракты и инварианты. Может и с юнит-тестированием легче дело пойдет. Короче, вот где каша на самом деле |
|
Сообщ.
#7210
,
|
|
|
|
Да-да
|
|
Сообщ.
#7211
,
|
|
|
|
Цитата leo @ "Но если туп как дерево, родишься бао-бабом, и будешь бао-бабом 300 лет пока помрешь" (С) Это я о себе Право же, в следующий раз не поясняйте. |
|
Сообщ.
#7212
,
|
|
|
|
MyNameIsIgor, я всегда знал что ты не просто хамло, а хам педальный
|
|
Сообщ.
#7213
,
|
|
|
|
Цитата --Ins-- @ MyNameIsIgor, я всегда знал что ты не просто хам, а хам педальный Ага, мне самому приятно |
|
Сообщ.
#7214
,
|
|
|
|
Та не, leo, просто вот так вот по-тролиному намекнул, что́ счас ты начнёшь получать в свой адрес. Молви на здоровье, просто уже ничего, пожалуй, не осталось, чего б тут не обсуждали. Конечно, я не рассчитывал, что ты всю тему проштудировал. Да и тема не единственная была.
Добавлено Цитата jack128 @ э-э-э. Я правильно понял, что если нужно пять указателей хранить, то у меня пять уровней иерархии будет?? Нет, конечно. По-хорошему надо просто взять пять смарт-поинтеров и не обезьянничать. Это ж пример для лекции. Его задача - показать на простом и пусть даже искусственном примере потенциал методики, обсуждавшейся на лекции. Лекция была на тему "контракты интерфейсов и гарантии |
|
Сообщ.
#7215
,
|
|
|
|
Цитата --Ins-- @ никогда не пойму что когда я пишу "создать объект окно" происходит: создается объект "объект", создается объект "компонент", создается объект "контрол", создается объект "окно". Вот это - выше моих возможностей. Я ведь просил создать один объект - окно, который просто наследует от предков интерфейс и реализацию. Наследует интерфейс и реализацию, которая от тебя скрыта(по крайней мере в обсуждаемых языках). Для обеспечения правильной работы унаследованной реализации, тебе нужно обеспечить инварианты этой самой реализации, которые предполагал разработчик базового класса и обеспечил их во всех своих конструкторах. Его конструктор отработал - инварианты соблюдены и нарушить их ты уже будешь не в состоянии. С другой стороны, код базового класса не будет гадить тебе и вызывать твои методы до того, как ты обеспечишь уже свои инварианты. Обязанности распределены, все состояния согласованы и корректны. В твоем же случае разработчик базового класса, вызывая в конструкторе перекрытые в потомке методы, фактически полагается на авось - он не знает наверняка, успел ли потомок привести объект в согласованное состояние(т.е. имеем ли мы право дергать методы, или объект еще конструируется), с другой стороны, разработчик потомка, перекрывая метод, так же вынужден или рассчитывать на то, что ему может прийти мусор(например, просто зануленная память) вместо объекта, или вызывать конструктор предка после того, как обеспечит свои инварианты(но в этом случае он не может в своем коде обращаться к унаследованным полям и методам в процессе конструирования), или смотреть в реализацию базового класса... Можно еще просто забить и "писать, как пишется", отлавливая(или пропуская) баги Но вряд ли у вас так принято ? |