
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (245) « Первая ... 228 229 [230] 231 232 ... 244 245 ( Перейти к последнему сообщению ) |
![]() |
Сообщ.
#3436
,
|
|
Давай я объясню. В Дельфях богатейший выбор: используй навязанную языком фабрику в единственной возможной форме, как её придумали, реализовали и вбили кувалдой в ран-тайм в тогда ещё Бодланде, или не используй фабрику, за которую каждый экземпляр любого класса всё равно будет платить в каждой программе. А на Плюсах выбора нет вообще, потому что никаких фабрик язык не предоставляет. Тот факт, что фабрики нам нужны раз в пятилетку, когда мы действительно согласны за них платить в программах, и при этом платить будет только один-единственных конкретно нужный нам класс, даже не обязательно все его экземпляры, и что фабрику мы можем написать, как бог на душу положит, какую дьявол в ухо нашепчет, сообразно велению левой пятки правой руки заместителя тим-лида, это на языке дельфистов называется не выбором, а вело-креативом. Добавлено Цитата OpenGL @ Да и вообще, ситуация, когда базовому классу необходимо знание дочернего, явно намекает на то, что наследование применено не очень-то к месту ![]() ![]() template <typename T> class Base; class Derived: public Base<Derived> {/* ... */}; ![]() |
Сообщ.
#3437
,
|
|
|
Цитата leo @ Говорили же, что дельфийская модель ООП во многом заточена на VCL. И приводили пример конструктора TForm.Create, который не только виртуальные методы использует, но и может инициализировать любые published поля и свойства своих потомков, о которых "узнает" только в рантайме на основании dfm-описания и RTTI. Понятно, что тоже самое или похожее м.б. реализовано как-то иначе. Но в дельфе сделано именно так, и ничего сурер-ужасного в этом нет Надо перевести в прошедшую форму и добавить R.I.P. |
Сообщ.
#3438
,
|
|
|
Ответ препода-маразматика просто фееричен:
http://alexanderbondar.blogspot.com/2013/1...330272501123823 Цитата Третье. Roman считает, что если в TMyBorderStyle переставить местами элементы, то мы получим неверный результат без сообщения об ошибке со стороны компилятора. Однако, поскольку компилятор - наш "друг, товарищ и брат", он в принципе не пропустит такой оператор присваивания. В том числе и Self.BorderStyle := bsSingle; Будет на этапе трансляции нормальное сообщение об ошибке. Я отписал: Цитата Товарищ преподаватель! Вам - неуд. Компилятор такое пропускает просто "на ура": ![]() ![]() type // Warning: bsSizeToolWin and bsSingle are switched! TMyFormBorderStyle = (bsNone, bsSizeToolWin, bsSizeable, bsDialog, bsToolWindow, bsSingle); procedure TForm1.FormCreate(Sender: TObject); begin BorderStyle := TFormBorderStyle(bsSingle); end; Вы думаете, что у Вас будет создано окно с обычной рамкой? Ну-ну. Можно только посочувствовать Вашим студентам. http://alexanderbondar.blogspot.com/2013/1...400072244823937 Что характерно - Всеволод Леонов горою выступил в защиту препода. Два родственных ума нашли друг друга! Добавлено Цитата D_KEY @ Надо перевести в прошедшую форму и добавить R.I.P. Именно, причем хоронит сама Эмбаркадеро, забрасывая VCL, для которого Дельфи заточена с самого начала ![]() |
Сообщ.
#3439
,
|
|
|
Цитата OpenGL @ Сам же пишешь, что значение этого поля определяет потомок. Чем это отличается от требования знания конкретного типа при конструировании - неясно Значение - да, а интерфейс - предок. Предку до конкретики дела нет, его требования по интерфейсу. Это нормальная ситуация. Классу Dog в поле behavior нужно значение типа DogBehavior, а классу Bird - BirdBehavior. Предок понятия не имеет какой потомок какой именно класс создаст, ему достаточно знать что это будет потомком Behavior. Или например классу Animal нужен список конечностей животного. Dog вернет один список, а Bird - другой. Знаний о том что конкретно кто вернет у базового класса нет Добавлено Цитата OpenGL @ Получается ведь, что в Дельфи конструкторы - вовсе не конструкторы, а, скорей, инициализаторы - они всего-лишь заполняют уже созданный объект корректными значениями. Я прав? Тело конструкторов/деструкторов - да. Но сам вызов работает именно как конструктор/деструктор, т.к. кроме тела выполняет еще и ряд сервисных действий под капотом |
Сообщ.
#3440
,
|
|
|
Цитата Alexander Bondar9 января 2014 г., 23:05 Могу за вас порадоваться, что вы не мой студент. Или искренне посочувствовать. Вам не приходило в голову проверить код, прежде чем посылать коммент? Рекомендую. Это ответ всезнающего гуру и светила Дельфи: http://alexanderbondar.blogspot.com/2013/1...901837879046623 Да, это уже клиника. |
![]() |
Сообщ.
#3441
,
|
|
Онлайн-компилятор Дельфи в природе существует?
![]() |
Сообщ.
#3442
,
|
|
|
Блин, дельфи под рукой нет сейчас
|
Сообщ.
#3443
,
|
|
|
Цитата --Ins-- @ Блин, дельфи под рукой нет сейчас Так это, на ideone.com freepascal - не? Не прокатит? Он ведь вроде совместим... Добавлено Вот это тоже хороший пассаж: Цитата Сейчас же времена изменились (даже я это заметил). На сегодняшний день (IMHO, то есть ИМХО, по моему скромному мнению) читаемость программы стоит сразу на третьем месте после правильностью выдаваемых программой результатов и ее эффективностью. А может быть и на втором перед эффективностью. (http://alexanderbondar.blogspot.ru/2013/12...330272501123823 |
Сообщ.
#3444
,
|
|
|
Цитата Flex Ferrum @ Сейчас же времена изменились (даже я это заметил). На сегодняшний день (IMHO, то есть ИМХО, по моему скромному мнению) читаемость программы стоит сразу на третьем месте после правильностью выдаваемых программой результатов и ее эффективностью. А может быть и на втором перед эффективностью. Вот это да. А я всегда считал что они изменились прямо в противоположную сторону - когда читаемость программы стоит в большинстве случаев выше. Как ни крути, в подавляющем большинстве случаев человекочасы стоят дороже чем миллисекунды, такты и байты. --------- А, так он об этом и говорит. Ну тогда наверное согласен, только читаемости то, что он предлагает делать, не добавляет, а скорее наоборот Добавлено Цитата Flex Ferrum @ Он ведь вроде совместим... Не везде. Не, для чистоты эксперимента нужно дельфи. |
Сообщ.
#3445
,
|
|
|
Кстати, вся проблема с его примером (когда он начал говорить про сортировку) в том, что нет нормального model-view для комбобокса, при котором данные - отдельно, аспект их сортировки - отдельно... Вот и приходится выёживаться...
|
Сообщ.
#3446
,
|
|
|
Цитата Flex Ferrum @ Кстати, вся проблема с его примером (когда он начал говорить про сортировку) в том, что нет нормального model-view для комбобокса, при котором данные - отдельно, аспект их сортировки - отдельно... Вот и приходится выёживаться... Ну, это вообще задачка на 5 минут ![]() |
Сообщ.
#3447
,
|
|
|
Там в комментах вроде есть вариант "строка-значение"
|
Сообщ.
#3448
,
|
|
|
Цитата --Ins-- @ Айтем комбобокса может хранить не только текст, но и данные Разве это model-view? |
Сообщ.
#3449
,
|
|
|
Цитата MyNameIsIgor @ Разве это model-view? Нет, это просто view |
Сообщ.
#3450
,
|
|
|
Цитата --Ins-- @ Цитата MyNameIsIgor @ Разве это model-view? Нет, это просто view А как вообще народ на Delphi использует MVC? Есть общепринятая библиотека с реализацией? |