powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / UML: уточнение типа в наследниках
19 сообщений из 19, страница 1 из 1
UML: уточнение типа в наследниках
    #35425057
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объект класса Collection содержит объекты Element. SpecificElement наследник от Element. SpecificCollection наследник от Collection для того чтобы не приводить типы, соответственно композиция меняет свой тип. Нужно ли это отражать между классами SpecificCollection и SpecificElement в диаграмме?
С уважением, Naf
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426072
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка дизайна. SpecificCollection не может наследоваться от Collection
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426098
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedОшибка дизайна. SpecificCollection не может наследоваться от Collection
Че это?
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426122
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому-что первый же дятел сделает такое
Код: plaintext
1.
2.
3.
SpecificCollection coll = new SpecificCollection();
Element el = new Element();
((Collection) coll).add(el);
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426137
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedПотому-что первый же дятел сделает такое
Код: plaintext
1.
2.
3.
SpecificCollection coll = new SpecificCollection();
Element el = new Element();
((Collection) coll).add(el);


а там такого нет метода, создается тоже из коллекции
Код: plaintext
1.
SpecificCollection coll = new SpecificCollection();
Element el = coll.Add();// а на самом деле SpecificElement
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426151
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще более безобразный дизайн. Теперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям, не расширяемо
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426160
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedЕще более безобразный дизайн. Теперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям, не расширяемо
Новых конструкторов не будет
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426162
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы Вы реализовали?
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426178
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я пока не вижу что реализовывать. Я не зная как это будет использоваться Но наверное параметризованными классами
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426182
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedА я пока не вижу что реализовывать. Я не зная как это будет использоваться Но наверное параметризованными классами
К сожалению в Delphi их нет
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426194
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда не делайте SpecifiсContainer вовсе. Лучше честно приводиться
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426328
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded пишет:

> Ошибка дизайна. SpecificCollection не может наследоваться от Collection

Да, именно так. SpecificCollection не должен быть подтипом Collection,
иначе в него можно запихать любые Elements, преобразуюя к его родителю.
SpecificCollection должен агрегировать Collection и являться адаптирующим
врапером для него.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426330
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf пишет:
> Как бы Вы реализовали?

Я написал, как надо.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426331
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf пишет:

> А я пока не вижу что реализовывать. Я не зная как это будет
> использоваться Но наверное параметризованными классами
>
>
> К сожалению в Delphi их нет
Вовсе тут и не обязательны параметризированные классы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35426332
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
blinded пишет:

> Ошибка дизайна. SpecificCollection не может наследоваться от Collection

Да, именно так. SpecificCollection не должен быть подтипом Collection,
иначе в него можно запихать любые Elements, преобразуюя к его родителю.
SpecificCollection должен агрегировать Collection и являться адаптирующим
врапером для него.
Posted via ActualForum NNTP Server 1.4
запихивать никто не будет, я написал, что коллекция сама их порождает.
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35427093
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafКак бы Вы реализовали?

Можно, например, в Collection определить вирт. метод Add(Element). В SpecificCollection переопределить его чтобы он кидал иксепшион, если Element не является SpecificElement и вдобавок к нему определить метод Add(SpecificElement), который будет вызывать Add(Element). Вполне типовое решение, которое, например, использовалось в .Net до того как дженерики в нём появились.
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35427963
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedОшибка дизайна. SpecificCollection не может наследоваться от Collection
Ну-ну.

blindedПотому-что первый же дятел сделает такое
И в чем проблема? Получит исключение и пойдет делать правильно.

blindedТеперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям,
А базовыми классами Вы не пользуетесь по религиозным соображениям?

blindedТогда не делайте SpecifiсContainer вовсе. Лучше честно приводиться
Кошмар. Вот так и рождается Ява.

MasterZivSpecificCollection не должен быть подтипом Collection, иначе в него можно запихать любые Elements, преобразуюя к его родителю.
Ну-ну.

MasterZivSpecificCollection должен агрегировать Collection и являться адаптирующим
врапером для него.
"И так семь раз, семь раз" (ц) В смысле, для каждого наследника писать тонну тупейшего кода, аккуратно менять ее при изменениях Collection - и это называется "правильно".

MasterZivЯ написал, как надо.
Вы написали, как не надо.
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35428300
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
1) blindedПотому-что первый же дятел сделает такое
И в чем проблема? Получит исключение и пойдет делать правильно.

2) MasterZivSpecificCollection должен агрегировать Collection и являться адаптирующим
врапером для него.
"И так семь раз, семь раз" (ц) В смысле, для каждого наследника писать тонну тупейшего кода, аккуратно менять ее при изменениях Collection - и это называется "правильно".


И чем же первое отличается от второго? тоже написание идиотского повторяющегося кода. Только Мастера будет статическая типизация, а значит ошибки будет вылавливать компилятор, а вот в вашем случае все переносится на Runtime;) И уже только поэтому
softwarer
blindedТеперь при добвлении конструктора классу Element надо добавлять соотв. производящие методы все коллекциям,
А базовыми классами Вы не пользуетесь по религиозным соображениям?

blindedТогда не делайте SpecifiсContainer вовсе. Лучше честно приводиться
Кошмар. Вот так и рождается Ява.

Слава богу до создателей дошло что они не правы... Правда не до конца и появились уродливые конструкции ограничивающие тип параметра с помощью интерфейсов, а плагиаторы из МС взяли и скопировали

softwarer
MasterZivSpecificCollection не должен быть подтипом Collection, иначе в него можно запихать любые Elements, преобразуюя к его родителю.
Ну-ну.

Да да именно так, чтобы не вводить никого в заблуждение и не получать дурацкие исключения
...
Рейтинг: 0 / 0
UML: уточнение типа в наследниках
    #35428350
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedИ чем же первое отличается от второго? тоже написание идиотского повторяющегося кода.
Где? Было бы весьма любопытно узнать, зачем он Вам нужен в первом случае.

blindedТолько Мастера будет статическая типизация, а значит ошибки будет вылавливать компилятор, а вот в вашем случае все переносится на Runtime;) И уже только поэтому
Это называется "эскалация проблем на пустом месте". Создать перманентный геморрой на каждый день каждому разработчику ради того, чтобы один гипотетический дятел раз в год сэкономил несколько секунд.

blindedДа да именно так, чтобы не вводить никого в заблуждение ....
.... будем превращать программиста в секретаршу, сначала старательно набивающую одно и то же, а потом еще и старательно копирующую в кучу мест каждое изменение базового класса. Заодно появится возможность хвастаться "разработал систему на стотыщмильонов строк кода, в котором утонет любая попытка сопровождения". Потом придет в голову гениальная мысль, мы неуклюже наполовину автоматизируем этот бардак, и мы сразу почувствуем себя творцами новой прогрессивной технологии.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / UML: уточнение типа в наследниках
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]