Вопрос

Я играю со строительством BLL для моего приложения. Из того, что я видел / прочитал, кажется, что BLL должен быть без гражданства. Разве это не означает, что все методы BLL могут быть статичными? Или я бы хотя бы только когда-нибудь понадобился только один экземпляр каждого класса BLL? Что кажется странным мне по какой-то причине, поэтому я подумал, что я лучше проверяю, я не получал неправильный конец палки, прежде чем я влюблен слишком далеко в мои эксперименты.

Я также думаю, что это означает, что объекты BLL никогда не должны содержать данные, поскольку данные представляют собой состояние - поэтому для каждой вызываемой операции BLL, любые необходимые данные, необходимые для необходимости, которые необходимо реквизировать (или выявленные из кэша), а затем выброшены. Это звучит вправо?

Спасибо.

Это было полезно?

Решение

Теоретически да, нестандартный BLL может означать, что все методы могут быть статичными.

Тем не менее, существуют некоторые соображения, которые могут качать вас к использованию экземпляров объектов BLL вместо статического.

  1. Статические методы вводят тесную связь между классами и предотвратить использование, например, интерфейсы, чтобы свободно пару зависимостей. Использование интерфейсов Улучшает тестируемость BLL, поскольку теперь оно теперь можно издеваться при написании модульных тестов для сервисного слоя. Если ваши методы BLL статичны, то вы, как правило, вы не сможете сделать это без «обходных путей» (например, вам нужно TypeMock или Microsoft Fakes в .NET окружающей среды).

  2. В комплексном методе BLL (например, большая логика транзакций) вы можете обратить внимание на каждый из ваших бизнес-правил на несколько дискретных методов, а на выходе, возможно, накапливая все нарушения проверки и правила в одном агрегированном результате, содержащем все нарушения. нарушения. В этом случае может быть громоздким шунтированием сущности / сущностей, которые будут подтверждены и накапливаться нарушениями правила, а вместо этого избраны за состояние хранения этих на классе. Базовый класс или универсальный для вашего экземпляра BLL может помочь здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top