Главная страница
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.013 c
2-1211960472
uno-84
2008-05-28 11:41
2008.06.22
Форма для штрихкода


15-1210560946
Slider007
2008-05-12 06:55
2008.06.22
С днем рождения ! 11 мая 2008 воскресенье


2-1211811508
mdbm
2008-05-26 18:18
2008.06.22
Пишу *.dll помогите с методами


11-1190286937
Robt
2007-09-20 15:15
2008.06.22
PBitmap


15-1210177626
Александр Иванов
2008-05-07 20:27
2008.06.22
Вложенные Repeater ы в ASP.NET