Главная страница
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.019 c
2-1212036678
buzb
2008-05-29 08:51
2008.06.22
Как разукрасить листбокс


2-1211782997
Сергей
2008-05-26 10:23
2008.06.22
совместный доступ к таблице Patadox-7


2-1212085608
assassin8899
2008-05-29 22:26
2008.06.22
Locate


2-1211854590
emytz
2008-05-27 06:16
2008.06.22
Установка приложения по команде.


2-1211881680
123-ий
2008-05-27 13:48
2008.06.22
Заголовок окна