Как описать такую зависимость? - CodeHelper

Как описать такую зависимость?

1

Допустим в классе А объявлено свойство типа В. Класс А в процессе своей работы создает и уничтожает экземпляры класса В, временно сохраняя их в этом свойстве. Существует несколько типов-наследников класса В (вообще-то он абстрактный). Мне нужно как-то описать такое свойство класса А, чтобы оно содержало ссылку на тип, а не на экземпляр, ну и реально инициализировать это свойство одним из наследников класса В. Т.о. образом, в процессе работы класса А будут создаваться экземпляры нужного класса-потомка В. В то же время А будет знать только о В.

  • Вот как это сделать?
  • А как это описать в spring-контейнере?
  • Или может все нужно делать гораздо проще и совсем по-другому?
Alexander

В Delphi было такое понятие, как метакласс.

admax

Класс Type — самый близкий аналог метаклассов. Или нет?

Alexander

Да, близкий, но не такой конкретный. Скажем, там можно было написать примерно так:

SomeClass = class;
MetaClass = class of SomeClass;

И получается, что MetaClass - это любой класс, унаследованный от SomeClass.

Лучший ответ:

1

Может применить паттерн Abstract Factory вместо хранения типа? То есть будет объект (фабрика) который отвечает за инстанцирование экземпляра конкретного типа, при этом класс A «знает» только об интерфейсе фабрики и НЕ знает о конкретных реализациях класса B.

Alexander

Ок. Спасибо.

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.