|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.10.2014, 01:57 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Модульность кода и интерфейсы.
Всем здравия желаю!
Такая задача: Написать менеджер баз данных, стало быть это некий интерфейс IDatabaseManager в неком Interf.Core.DB.Manager.pas Управляет некой сущностью интерфейса IDatabase в Interf.Core.DB.Database.pas А дилемма такая: IDatabaseManger хранит в себе IDatabase, а IDatabase должен иметь ссылку на своёго владельца. Как избежать цикличности? Хочу по человечески, каждому большому классу свой файл. Очень хочется избежать приведения типов. Описывать это все одним pas модулем - вообще не рассматривается. Последний раз редактировалось Человек_Борща; 19.10.2014 в 02:11. |
19.10.2014, 02:37 | #2 | |
Форумчанин
Регистрация: 21.04.2014
Сообщений: 115
|
Цитата:
Отсюда и решение: надстроить родителя над обоими сущностями и вынести его наверх. Иными словами, думайте не о горизонтальных связях, думайте о вертикальных =-) Последний раз редактировалось StriderX; 19.10.2014 в 02:39. |
|
19.10.2014, 02:47 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
мм немного не понятно.. можете привести пример что вы имеете ввиду?
|
19.10.2014, 02:59 | #4 | |
Форумчанин
Регистрация: 21.04.2014
Сообщений: 115
|
Цитата:
Башня знает про: TGameObject(parent), TPhysicalBody(parent) и т.п. Платформа знает про: TGameObject(child), TRenderable(child), TMouseControlled(child) и т.п. В частном случае всё это может вырождаться и к одному супер-родителю "всё в одном". Не забывайте, что интерфейсы поддерживают "множественное наследование". Проектирование таких элементов допускает и полное отсутствие наследования - в этом случае используются клиент-сервер связи. |
|
19.10.2014, 03:02 | #5 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
19.10.2014, 09:20 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А я что-то совсем не понял задачу...
I'm learning to live...
|
20.10.2014, 10:59 | #7 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
интерфейсы заданные в одном Или нескольких ДРУГИХ файлах. ДЛЯ ОПИСАНИЯ интерфейсов ВЫДЕЛИТЬ отдельный файл (или неколько). Все файлы реализаций (классов) будут иметь ссылки на файл(-ы) на описания (объявления) интерфейсов и ничего не знать про классы их реализающие. Код:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 20.10.2014 в 11:06. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интерфейсы. | Tison1251 | Общие вопросы по Java, Java SE, Kotlin | 3 | 07.12.2013 04:52 |
Интерфейсы | Amgsys HQ | Общие вопросы Delphi | 2 | 14.08.2013 23:45 |
Модульность в Delphi | kuzjma | Общие вопросы Delphi | 1 | 28.09.2010 01:25 |
Интерфейсы | Maks1978 | Общие вопросы C/C++ | 0 | 29.06.2009 22:11 |
Интерфейсы | MaZaHaKa | Общие вопросы Delphi | 1 | 30.11.2008 19:17 |