0

Доброе утро, Мой вопрос касается структуры проекта/каталога Visual Studio. Я создаю простой проект, и я хочу использовать архитектуру Луны. У меня есть несколько слоев (проектов): MyProject.Domain (с Перечисления, Entites, интерфейсы), MyProject.API, MyProject.Infrastructure.DependecyResolution, MyProject.Client.WPFAbstract Factory Pattern в архитектуре лука

Я хочу используйте абстрактный шаблон фабрики. У меня есть завод класс, и несколько продукт классов.

интерфейсов My "продукта" в Домене> Интерфейсах, реализации моего "продукт" в Домене> Entites. Где в моем решении Visual Studio я должен поставить интерфейсы и реализации Фабрик (что создаст те продукты)?

Мой вопрос: Является ли интерфейс Factory или Factory Конкретная реализация часть домена в луковый Arch.? Или я должен создать другой проект для заводов? Этот вопрос больше связан с хорошими практиками программирования, поддерживая чистоту и аккуратность решения Visual Studio.

+1

вопрос касательно: http://stackoverflow.com/q/1894102/1168342 – Fuhrmanator

+0

Какая боль вы пытаетесь решить с помощью этого шаблона? Сосредоточьтесь на проблеме, которую вам нужно решить, а не на конкретном шаблоне, и вы можете найти другие шаблоны лучше всего подходят. В любом случае, как говорили другие, вы можете реализовать этот шаблон несколькими способами. Ключевым преимуществом этой архитектуры является ее гибкость, поэтому вы можете переместить свой дизайн позже, если найдете, что вам нужно это сделать. – ssmith

+0

Моя «проблема», хотя я бы назвал ее «цель» в том, что у меня будет простое приложение - вид игры. И теперь, что я сделаю несколько подобных подобных игр. Поэтому я хочу создать проект, который будет максимально гибким и готовым к расширению. –

ответ

3

Нет ни одного правильного ответа. Возможно, вы можете создать папку «core», где вы поместите весь свой основной код. Нет ничего плохого в том, что просто создайте в нем папку «интерфейсы», и обычно можно увидеть папку с именем «сущности», содержащую различные классы данных.

3

Мой вопрос: является ли интерфейс Factory или Factory конкретным элементом реализации домена в луковой арке.?

Я не эксперт в области архитектуры Луковый философии, но есть несколько аргументов, чтобы поместить заводы в той же упаковке, как продукты:

  • заводы могут быть видны в то время как продукты могут быть (что означает, что внешние клиенты не смогут напрямую обращаться к продуктам, они должны пройти через заводы),
  • Согласование пакета через REP (принцип эквивалентности повторного использования) Роберта Мартина говорит: «Гранула повторного использования гранула высвобождения ". Если вы не объединяете фабрики с их продуктами, пакет не будет легко использоваться повторно.
Смежные вопросы