При разработке n-уровневого приложения я, похоже, столкнулся со сценарием, когда одна служба говорит, что службе A необходимо использовать метод службы B. Я не хочу дублировать логику, но не похоже, что у меня не должно быть служб, вызывающих один другой либо. Как лучше всего поступить в этой ситуации, не нарушая никаких правил? Я думаю о том, чтобы вывести общий метод из службы B и добавить его в другой класс, чтобы обе службы наследуются от этого класса.
Шаблон сервисного уровня: бизнес-логика, охватывающая несколько сервисов.
Ответы (1)
Внедрение зависимости.
Служба A ожидает, что в нее будет внедрена четко определенная служба, которая выражается интерфейсом. Таким образом, можно внедрить службу B, а также любую другую службу, реализующую тот же контракт.
person
Wiktor Zychla
schedule
01.03.2014
Я нарушаю это с подходом, который я думаю сделать выше?
- person user1790300; 02.03.2014
ДИ в полном порядке. С другой стороны, наследование может навредить, поскольку оно приводит к высокой связанности.
- person Wiktor Zychla; 02.03.2014
Каким может быть более эффективный подход?
- person user1790300; 03.03.2014
Я не вижу здесь более эффективного подхода, чем DI.
- person Wiktor Zychla; 03.03.2014