Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.22;
Скачать: CL | DM;

Вниз

Как лучше сделать классу интерфейс?   Найти похожие ветки 

 
Basis   (2008-05-11 03:11) [0]

Есть класс с кучей различных данных. Которые используют другие классы.

Но одни из этих классов используют одни данные, другие другие, третьи - третьи. Некоторые из них могут пересекаться. В результате у этого класса вынесено в паблик целый вагон всего, так, что трудно разобраться что нужно такому-то классу, а что другому.

Хорошо бы, чтобы у класса было бы несколько пабликов, в которых бы было чётко разграничено, для этих классов такие данные, для этих такие, для тех - третьи.

Экземпляр класса - один.

В общем как лучше сделать архитектуру этого класса? Разделять класс на части - не предлагать.


 
Юрий Зотов ©   (2008-05-11 08:31) [1]

type
 // Контейнер данных для класса 1
 IData1Provider = interface
   function Get...;
   function Get...;
   ...
 end;

 // Контейнер данных для класса 2
 IData2Provider = interface
   function Get...;
   function Get...;
   ...
 end;

 // Контейнер данных для класса 3 (пересечение с классом 1)
 IData3Provider = interface(IData1Provider)
   function Get...;
   function Get...;
   ...
 end;

 // Контейнер данных для класса 4 (пересечение с классом 2)
 IData4Provider = interface(IData2Provider)
   function Get...;
   function Get...;
   ...
 end;  

 // Контейнер данных для класса 5 (пересечение с классами 1 и 2)
 IData5Provider = interface(IData1Provider, IData2Provider)
   function Get...;
   function Get...;
   ...
 end;

 // И т. д.

 TDataProvider = class(TAncestorClass, IData1Provider, IData2Provider, IData3Provider, IData4Provider, IData5Provider, ...)
 ...
 end;



Страницы: 1 вся ветка

Текущий архив: 2008.06.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
2-1211574528
Otz
2008-05-24 00:28
2008.06.22
Записи в DBGrid


2-1211961384
Кирей
2008-05-28 11:56
2008.06.22
Не работает простой запрос


15-1210575142
zdm77
2008-05-12 10:52
2008.06.22
Ошибка coreide100.bpl


15-1209656258
NaRuTo
2008-05-01 19:37
2008.06.22
Написание OS на Delphi


2-1211621163
Димон
2008-05-24 13:26
2008.06.22
TXMLDocument в RUNTIME