|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
объект класса Collection содержит объекты Element. SpecificElement наследник от Element. SpecificCollection наследник от Collection для того чтобы не приводить типы, соответственно композиция меняет свой тип. Нужно ли это отражать между классами SpecificCollection и SpecificElement в диаграмме? С уважением, Naf ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 11:52 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Ошибка дизайна. SpecificCollection не может наследоваться от Collection ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 16:45 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blindedОшибка дизайна. SpecificCollection не может наследоваться от Collection Че это? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 16:55 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Потому-что первый же дятел сделает такое Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:01 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blindedПотому-что первый же дятел сделает такое Код: plaintext 1. 2. 3.
а там такого нет метода, создается тоже из коллекции Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:05 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Еще более безобразный дизайн. Теперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям, не расширяемо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:12 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blindedЕще более безобразный дизайн. Теперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям, не расширяемо Новых конструкторов не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:15 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Как бы Вы реализовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:15 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
А я пока не вижу что реализовывать. Я не зная как это будет использоваться Но наверное параметризованными классами ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:22 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blindedА я пока не вижу что реализовывать. Я не зная как это будет использоваться Но наверное параметризованными классами К сожалению в Delphi их нет ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:22 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Тогда не делайте SpecifiсContainer вовсе. Лучше честно приводиться ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 17:29 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blinded пишет: > Ошибка дизайна. SpecificCollection не может наследоваться от Collection Да, именно так. SpecificCollection не должен быть подтипом Collection, иначе в него можно запихать любые Elements, преобразуюя к его родителю. SpecificCollection должен агрегировать Collection и являться адаптирующим врапером для него. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 18:50 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Naf пишет: > Как бы Вы реализовали? Я написал, как надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 18:51 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
Naf пишет: > А я пока не вижу что реализовывать. Я не зная как это будет > использоваться Но наверное параметризованными классами > > > К сожалению в Delphi их нет Вовсе тут и не обязательны параметризированные классы. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 18:52 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
MasterZiv blinded пишет: > Ошибка дизайна. SpecificCollection не может наследоваться от Collection Да, именно так. SpecificCollection не должен быть подтипом Collection, иначе в него можно запихать любые Elements, преобразуюя к его родителю. SpecificCollection должен агрегировать Collection и являться адаптирующим врапером для него. Posted via ActualForum NNTP Server 1.4 запихивать никто не будет, я написал, что коллекция сама их порождает. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 18:53 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
NafКак бы Вы реализовали? Можно, например, в Collection определить вирт. метод Add(Element). В SpecificCollection переопределить его чтобы он кидал иксепшион, если Element не является SpecificElement и вдобавок к нему определить метод Add(SpecificElement), который будет вызывать Add(Element). Вполне типовое решение, которое, например, использовалось в .Net до того как дженерики в нём появились. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2008, 10:33 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blindedОшибка дизайна. SpecificCollection не может наследоваться от Collection Ну-ну. blindedПотому-что первый же дятел сделает такое И в чем проблема? Получит исключение и пойдет делать правильно. blindedТеперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям, А базовыми классами Вы не пользуетесь по религиозным соображениям? blindedТогда не делайте SpecifiсContainer вовсе. Лучше честно приводиться Кошмар. Вот так и рождается Ява. MasterZivSpecificCollection не должен быть подтипом Collection, иначе в него можно запихать любые Elements, преобразуюя к его родителю. Ну-ну. MasterZivSpecificCollection должен агрегировать Collection и являться адаптирующим врапером для него. "И так семь раз, семь раз" (ц) В смысле, для каждого наследника писать тонну тупейшего кода, аккуратно менять ее при изменениях Collection - и это называется "правильно". MasterZivЯ написал, как надо. Вы написали, как не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 11:07 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
softwarer 1) blindedПотому-что первый же дятел сделает такое И в чем проблема? Получит исключение и пойдет делать правильно. 2) MasterZivSpecificCollection должен агрегировать Collection и являться адаптирующим врапером для него. "И так семь раз, семь раз" (ц) В смысле, для каждого наследника писать тонну тупейшего кода, аккуратно менять ее при изменениях Collection - и это называется "правильно". И чем же первое отличается от второго? тоже написание идиотского повторяющегося кода. Только Мастера будет статическая типизация, а значит ошибки будет вылавливать компилятор, а вот в вашем случае все переносится на Runtime;) И уже только поэтому softwarer blindedТеперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям, А базовыми классами Вы не пользуетесь по религиозным соображениям? blindedТогда не делайте SpecifiсContainer вовсе. Лучше честно приводиться Кошмар. Вот так и рождается Ява. Слава богу до создателей дошло что они не правы... Правда не до конца и появились уродливые конструкции ограничивающие тип параметра с помощью интерфейсов, а плагиаторы из МС взяли и скопировали softwarer MasterZivSpecificCollection не должен быть подтипом Collection, иначе в него можно запихать любые Elements, преобразуюя к его родителю. Ну-ну. Да да именно так, чтобы не вводить никого в заблуждение и не получать дурацкие исключения ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 12:27 |
|
UML: уточнение типа в наследниках
|
|||
---|---|---|---|
#18+
blindedИ чем же первое отличается от второго? тоже написание идиотского повторяющегося кода. Где? Было бы весьма любопытно узнать, зачем он Вам нужен в первом случае. blindedТолько Мастера будет статическая типизация, а значит ошибки будет вылавливать компилятор, а вот в вашем случае все переносится на Runtime;) И уже только поэтому Это называется "эскалация проблем на пустом месте". Создать перманентный геморрой на каждый день каждому разработчику ради того, чтобы один гипотетический дятел раз в год сэкономил несколько секунд. blindedДа да именно так, чтобы не вводить никого в заблуждение .... .... будем превращать программиста в секретаршу, сначала старательно набивающую одно и то же, а потом еще и старательно копирующую в кучу мест каждое изменение базового класса. Заодно появится возможность хвастаться "разработал систему на стотыщмильонов строк кода, в котором утонет любая попытка сопровождения". Потом придет в голову гениальная мысль, мы неуклюже наполовину автоматизируем этот бардак, и мы сразу почувствуем себя творцами новой прогрессивной технологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 12:44 |
|
|
start [/forum/topic.php?fid=33&fpage=43&tid=1548745]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 153ms |
0 / 0 |