Где разместить методы GetObjectColletion? - PullRequest
1 голос
/ 20 января 2009

Приложение имеет класс Foo, который является конкретным классом со всей бизнес-логикой и поведением, правильно определенными.

Тем не менее, нужно получить коллекцию всех Foos, которые сохраняются в этом приложении.

Где должен быть размещен этот метод IEnumerable GetFoos ()?

Не в самом классе Foo, верно?

Ответы [ 2 ]

1 голос
/ 20 января 2009

Вам понадобится класс Foos, производный от CollectionBase или аналогичный, для предоставления экземпляров вашего класса Foo.

0 голосов
/ 21 января 2009

Чтобы следовать принципам SOLID, вы должны подумать о реальном назначении класса Foo. Поскольку я не знаю деталей имплементации и внутренней работы Foo, я не могу сказать много. Но не будет ли этот дизайн более традиционным?

class Foo
{
  IPersistancePresenter persistancePresenter;
  public Foo(IPersistancePresenter persistancePresenter)
  { 
     persistancePresenter = persistancePresenter;
  }
}

interface IPersistancePresenter <T>
{
  IList<T> GetInstancesOf<T>();
}

Foo не изменится (так как это не должно быть обязанностью Foo), если позже будет другой класс, кроме Foo, который должен быть сохранен и иметь экземпляры, собранные во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...