Главная страница
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.012 c
15-1210154445
Desp
2008-05-07 14:00
2008.06.22
корпоративная почта


15-1210102201
Маэстро
2008-05-06 23:30
2008.06.22
Программисты вопрос!!!!!


2-1212039243
brother
2008-05-29 09:34
2008.06.22
имеет ли смысл задержка?


11-1190273335
KOLBoss
2007-09-20 11:28
2008.06.22
Scan UDP


15-1210704184
fics
2008-05-13 22:43
2008.06.22
Классификация ПО для Web-технологий