Шаблон сервисного уровня: бизнес-логика, охватывающая несколько сервисов.

При разработке n-уровневого приложения я, похоже, столкнулся со сценарием, когда одна служба говорит, что службе A необходимо использовать метод службы B. Я не хочу дублировать логику, но не похоже, что у меня не должно быть служб, вызывающих один другой либо. Как лучше всего поступить в этой ситуации, не нарушая никаких правил? Я думаю о том, чтобы вывести общий метод из службы B и добавить его в другой класс, чтобы обе службы наследуются от этого класса.


person user1790300    schedule 01.03.2014    source источник


Ответы (1)


Внедрение зависимости.

Служба A ожидает, что в нее будет внедрена четко определенная служба, которая выражается интерфейсом. Таким образом, можно внедрить службу B, а также любую другую службу, реализующую тот же контракт.

person Wiktor Zychla    schedule 01.03.2014
comment
Я нарушаю это с подходом, который я думаю сделать выше? - person user1790300; 02.03.2014
comment
ДИ в полном порядке. С другой стороны, наследование может навредить, поскольку оно приводит к высокой связанности. - person Wiktor Zychla; 02.03.2014
comment
Каким может быть более эффективный подход? - person user1790300; 03.03.2014
comment
Я не вижу здесь более эффективного подхода, чем DI. - person Wiktor Zychla; 03.03.2014