Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 468 469 [470] 471 472 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#7036
,
|
|
|
|
И называется этот разруливатель - AfterConstruction, или попросту - залепитель костылей, который ты выдаешь за АОП, за какую то новомодную фишку, без которой якобы всем плохо будет... |
|
Сообщ.
#7037
,
|
|
|
|
тут есть один момент. В твоем решении всем программистам нужно знать, что тебе нужно знать после создания Object нужно ОБЯЗАТЕЛЬНО поместить в некий контейнер. А у Ins'а все само собой происходит. |
|
Сообщ.
#7038
,
|
|
|
|
Цитата jack128 @ тут есть один момент. В твоем решении всем программистам нужно знать, что тебе нужно знать после создания Object нужно ОБЯЗАТЕЛЬНО поместить в некий контейнер. А у Ins'а все само собой происходит. А можно на примере? В какой контейнер и как будет добавляться объект, и как его(контейнер) будет видеть программист снаружи, вне класса? |
|
Сообщ.
#7039
,
|
|
|
|
Цитата jack128 @ В твоем решении всем программистам нужно знать, что тебе нужно знать после создания Object нужно ОБЯЗАТЕЛЬНО поместить в некий контейнер. Зачем? Нужно положить в контейнер - положил. Не нужно - не положил Цитата А у Ins'а все само собой происходит. Ага, а потом удивляемся, почему Ins'ы юнит-тесты не пишут... |
|
Сообщ.
#7040
,
|
|
|
|
Цитата KILLER @ И называется этот разруливатель - AfterConstruction, или попросту - залепитель костылей, который ты выдаешь за АОП, за какую то новомодную фишку, без которой якобы всем плохо будет... Глупости, AfterConstruction мне для этот не нужен вовсе. Что очередной раз подтверждает что ты не в теме. А вот D_KEY - в теме, но мы уже ломали над этим копья, ни к чему не пришли, и не вижу смысла начинать сначала Добавлено Цитата D_KEY @ Зачем? Нужно положить в контейнер - положил. Не нужно - не положил Есть еще третий вариант - нужно - не положил |
|
Сообщ.
#7041
,
|
|
|
|
Цитата --Ins-- @ Есть еще третий вариант - нужно - не положил ![]() Странно ты программируешь |
|
Сообщ.
#7042
,
|
|
|
|
Цитата --Ins-- @ Глупости, AfterConstruction мне для этот не нужен вовсе. Что очередной раз подтверждает что ты не в теме. А чо там, есть тема какая нибудь закинуца? Я тоже хочу быть в теме, как ты... В том и дело, что мы уже обсуждали еще давно, что вы в конструкторах своих проверяете на null переменную, прежде чем ее юзать. И со всеми этими перекрытиями, выходит полная путаница, чтобы не запутатся где какой объект должен создастся первым, наверное проще в AfterConstruction впихнуть всю логику создания объекта, не? Я может и ошибаюсь... но тогда для чего этот AfterConstruction вообще нужен, если им пользуюца раз в сто лет, и то когда лень думать и хочеца поговнокодить? |
|
Сообщ.
#7043
,
|
|
|
|
Цитата KILLER @ А чо там, есть тема какая нибудь закинуца? Я тоже хочу быть в теме, как ты... В том и дело, что мы уже обсуждали еще давно, что вы в конструкторах своих проверяете на null переменную, прежде чем ее юзать. И со всеми этими перекрытиями, выходит полная путаница, чтобы не запутатся где какой объект должен создастся первым, наверное проще в AfterConstruction впихнуть всю логику создания объекта, не? Я может и ошибаюсь... но тогда для чего этот AfterConstruction вообще нужен, если им пользуюца раз в сто лет, и то когда лень думать и хочеца поговнокодить? Похоже, ты уже закинулся... |
|
Сообщ.
#7044
,
|
|
|
|
Цитата --Ins-- @ Похоже, ты уже закинулся... ![]() А шо не? Ну я не ыгзперд делфи, я хз... помница что вы там на null проверяете перед тем как юзать или удалять переменную... Ну ок, вот у тебя есть базовый класс, есть производный. Нормальный процесс создания объекта, это когда отработал конструктор базового, следом производного класса. Теперь делаем в делфи так, что конструктор производного класса выполняется раньше базового, и как следствие, он может использовать еще не созданные члены базового класса. Как разрулить такую ситуацию? На null же проверить, разве не? |
|
Сообщ.
#7045
,
|
|
|
|
Цитата D_KEY @ Странно ты программируешь Человекам очень свойственно делать то, что ты называешь странным А задача инструмента - минимизировать это |
|
Сообщ.
#7046
,
|
|
|
|
Цитата D_KEY @ Впрочем, сейчас все потихоньку переползают на новый стандарт, благо есть clang и gcc. Ага. В последних своих проектах ничего кроме C++11 и Qt не использую. Хотя... Да. Из boost'а использую только boost::preprocessor. Но и от него, в принципе, можно отказаться. И таки да - никакого дискомфорта не ощущаю. |
|
Сообщ.
#7047
,
|
|
|
|
Цитата KILLER @ Теперь делаем в делфи так, что конструктор производного класса выполняется раньше базового, и как следствие, он может использовать еще не созданные члены базового класса. Как разрулить такую ситуацию? На null же проверить, разве не? Если я делаю так, чтобы часть кода конструктора производного класса отработала раньше конструктора базового, мне точно не придет в голову использовать данные базового. Скорее всего, весь этот код будет заключаться в создании и инициализации тех полей, о которых так беспокоиться D_KEY. Если же вдруг я столкнусь с чем-то подобным, что ты описал, я совершенно точно пересмотрю правильность спроектированности мной классов. Но пока не приходилось с таким сталкиваться |
|
Сообщ.
#7048
,
|
|
|
|
Цитата D_KEY @ Не нужно - не положил как бы создателю класса Object виднее, нужно экземпляры это класса класть в контейнер или нет. И если он решил, что нужно, значит нужно. |
|
Сообщ.
#7049
,
|
|
|
|
Цитата --Ins-- @ Если я делаю так, чтобы часть кода конструктора производного класса отработала раньше конструктора базового, мне точно не придет в голову использовать данные базового Но ведь ты их можешь неявно использовать. Допустим вызвать какой нибудь метод там... Да банально ты можешь просто забыть, что у тебя где то используются неинициализированные поля. В противном случае тебе придется в голове держать весь процесс создания объекта, чтобы как можно меньше наделать косяков. ИМХО, это не нужная, избыточная информация, и забивка мозгов не тем чем нужно. Конструирование объекта должно быть прозрачным для программиста, а не запутаным. |
|
Сообщ.
#7050
,
|
|
|
|
Цитата jack128 @ как бы создателю класса Object виднее, нужно экземпляры это класса класть в контейнер или нет. И если он решил, что нужно, значит нужно. Так а можно пояснить один момент? Я уже второй раз спрашиваю. Каким образом это будет происходить? Т.е. внутри класса Object, будет заведен некий контейнер, в который этот класс будет класть свой собственный экземпляр? Или как? Как с этим контейнером работать вне класса Object ? И зачем сохранять самого себя, во внутренний контейнер? |