Луковая архитектура: где разместить реализации фабрики? - PullRequest
0 голосов
/ 20 августа 2011

Я собираюсь создать новое «Корпоративное решение»

Поэтому я решил использовать « Луковую архитектуру », потому что я хочу столько же, сколько и гибкой архитектуры.

Но я новичок в вопросе «Разрешение зависимостей».

Как я понимаю, я должен поместить Фабрики " Реализации " в этот слой, и этот слой имеет ссылки на все другие уровни.

Тогда я хочу знать, как создать новый экземпляр IFactory в " UI Layer ", когда FactoryImplementation в DependencyResolution Layer и UI Layer этого не делаютесть ссылка на "DependencyResolution Layer"


Редактировать ::

Спасибо г-ну Эрику

Но послеЯ видел многие из этих ссылок, но у меня все еще есть проблема, когда я хочу «зарегистрировать» реализации в их «интерфейсах», потому что я не могу сделать что-то подобное в UI Project:

kernel.Bind<ITaxCalculator>()
      .To<TaxCalculator>()
      .WithConstructorArgument("rate", .2M);

, потому что UI Project может 't access TaxCalculator «Реализация».

1 Ответ

5 голосов
/ 20 августа 2011

Я думаю, что лучшим решением было бы использование контейнера зависимостей (он же контейнер IOC) для разрешения ваших ссылок, таких как Castle Windsor или Unity, если вы работаете в .NET.Они позволяют настраивать разрешение зависимостей без ссылок на фактические реализации на уровне пользовательского интерфейса.

РЕДАКТИРОВАТЬ: Некоторые ссылки:

...