Фабрика и Объект
 Добавлено: 28.04.2011 15:39:55
Добавлено: 28.04.2011 15:39:55В общем, такая проблема... Имеется управляющий класс (что-то вроде фабрики):
И есть собственно управляемый класс:
Очень хочется иметь в управляемом классе что-то вроде
т.е. чтобы управляемый объект знал о свойствах фабрики, его создавшей... Но при этом, чтобы обеспечить работу Function BuildItem: TItemClass; мне нужно объявить BItemClass перед BManagerClass. Но тогда BItemClass не будет ничего знать о BManagerClass и желаемое свойство Manager: BManagerClass окажется недоступным...
Как правильно разрешить эту проблему? Сейчас я замещаю кошерную Function BuildItem: TItemClass на Constructor BItemClass.Build(aManager: BManagerClass); что представляется мне не совсем правильным ^_^ Или ситуация, когда BItemClass требует информации о BManagerClass сигнализирует о необходимости пересмотреть структуру классов?
			- Код: Выделить всё
- Type BManagerClass = Class
 Private
 ...
 Public
 Function BuildItem: TItemClass;
 ...
 End;
И есть собственно управляемый класс:
- Код: Выделить всё
- Type BItemClass = Class
 Private
 ...
 Public
 ...
 End;
Очень хочется иметь в управляемом классе что-то вроде
- Код: Выделить всё
- ...
 Property Manager: BManagerClass Read bManager;
 ...
т.е. чтобы управляемый объект знал о свойствах фабрики, его создавшей... Но при этом, чтобы обеспечить работу Function BuildItem: TItemClass; мне нужно объявить BItemClass перед BManagerClass. Но тогда BItemClass не будет ничего знать о BManagerClass и желаемое свойство Manager: BManagerClass окажется недоступным...
Как правильно разрешить эту проблему? Сейчас я замещаю кошерную Function BuildItem: TItemClass на Constructor BItemClass.Build(aManager: BManagerClass); что представляется мне не совсем правильным ^_^ Или ситуация, когда BItemClass требует информации о BManagerClass сигнализирует о необходимости пересмотреть структуру классов?