Создание компонентного приложения с использованием IoC и CBD - PullRequest
1 голос
/ 18 мая 2011

Я много читал о IoC и компонентном проектировании. Однако я немного не уверен в том, как лучше спроектировать мои интерфейсы.

Я не уверен, насколько грубыми или мелкими они должны быть. Рассмотрим компонент Отправка в качестве примера:

  • Компонент отгрузки может быть настроен с некоторыми настройками
  • Пользователь может добавлять и удалять товары из партии
  • Пользователь может выполнять некоторые функции в отношении груза, которые изменяют его состояние, например, Готов к отправке, авторизации, отправке, счету и т. Д.

Простейший интерфейс для этого модуля может быть следующим (псевдокод):

public interface IShipment
{
  AddItem(Item);
  RemoveItem(Item);

  ReadyForShipment();
  Authorise();
  Despatch();
  Invoice();
}

Однако я не уверен, что это действительно правильный интерфейс. Может быть, мы должны отделить их:

public interface IShipmentContents
{
  AddItem(Item);
  RemoveItem(Item);
}

public interface IShipmentActions
{
  ReadyForShipment();
  Authorise();
  Despatch();
  Invoice();
}

Или мы можем довести его до крайности, когда каждое из действий становится интерфейсом и, таким образом, мы можем внедрять конкретные реализации каждое действие вместо группы из них.

Может ли кто-нибудь указать мне некоторые материалы для чтения, чтобы помочь мне понять применение IoC и CBD в реальном приложении?

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