OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 20 Апрель, 2018 23:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Суббота, 24 Март, 2018 01:23 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1305
Причём, заметьте, что должно исполняться обязательное условие именно агрегирования, а не наследования наших прикладных классов-"множеств" предметки от классов-коллекций!
Этим самым, прежде всего, мы избавляемся от типичной тяжелейшей ошибки проектирования: привнесения на уровень понятия "множество" нашей предметной области, через наследование, понятий и элементов конкретной реализации.

Примером такого же подхода является, например, реализация понятия "активный объект".
Широко практикуется наследование (в том или ином фреймвоке или библиотеки классов) от класса (условно) Thread с переопределением унаследованного метода Exec(ute)|Run.
А ведь активные объекты нашей предметной области НЕ являются реализацией функционала аспектов многопоточности в подлежащей операционной системе или среды исполнения.
(Кто не понял это предложение, перечитайте его ещё раз.)
Но именно это и утверждается через наследование от класса-потока...
Этим самым ломается основной принцип абстрагирования - удаление незначащих или лишних деталей. А ведь через наследование (не важно - public, protected или private), мы ещё крепче привязываемся к таким деталям и ломаем требование стратификации и разделение на уровни представления системы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Суббота, 24 Март, 2018 11:34 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 263
Откуда: Москва
Полной отвязывание элементов предметной области, универсальный интерфейс реализации контейнеров, агрегирование (а не наследование) Vector, List, Map в прикладные типы предметки...

Убедительно, есть над чем подумать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Суббота, 24 Март, 2018 16:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8944
Откуда: Россия, Орёл
Wlad, поддерживаю высказанные мысли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Среда, 11 Апрель, 2018 14:42 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 263
Откуда: Москва
Обновил scl, теперь версия 1.2 на обертоне.
Произошли архитектурные изменения, навеянные, спасибо, Владимир Витальевич.
1. На элементы списка или map теперь не накладывается никаких ограничений (раньше было Elem = RECORD (List.Elem) .. END). Примеры ObxLists, ObxMaps.
2. Все контейнеры теперь наследуются от общего интерфейса Base.Container. ObxContainers демонстрирует работу через контейнеры, реализованные как Vector, List, Map, а также абстрактную фабрику пользовательских типов.
3. SclObxDictionary показан как композиция и агрегирование контейнеров.
4. SclObxObjects использует Traverse для обхода рекурсивных структур с контейнерами.
5. SclObxKeys показывает возможные варианты работы с компараторами, спасибо Владиславу Фольцу за его комментарии в части компараторов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Среда, 11 Апрель, 2018 22:48 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2487
Откуда: Россия, Ярославль
Кажется, каждый компонент с коллекциями проходит одни и те же этапы, как наш Lists.


Последний раз редактировалось Пётр Кушнир Среда, 11 Апрель, 2018 23:06, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Среда, 11 Апрель, 2018 22:57 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2487
Откуда: Россия, Ярославль
Следующим этапом надо ввести коллекцию с параметрическим полиморфизмом по принципу "объект-параметр", как в ListsKeys (ListsObxKeys). :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Среда, 11 Апрель, 2018 23:00 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2487
Откуда: Россия, Ярославль
И ещё weak reference на объекты в списках, как в ypkSysRef.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Container Library
СообщениеДобавлено: Четверг, 12 Апрель, 2018 14:03 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 263
Откуда: Москва
Пётр Кушнир писал(а):
И ещё weak reference на объекты в списках, как в ypkSysRef.

А вот это вполне может быть, и с учетом ypkSysRef.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB