2012-01-09 2 views
0

При разработке приложения я поражен в случае, когда неясно, как я должен продолжить. Мое приложение не очень большая имплиментация, поэтому не нужно добавлять контейнер DI (Весна/Гик).Создание фабрики общих объектов

У меня есть слой с моим контроллером, откуда мне нужно вызвать мой сервисный уровень, и у меня есть два способа создать экземпляр ServiceObject.

  1. использование простой new оператор.
  2. Создайте заводский слой.

Я знаю о фабричном шаблоне, но я намерен создать общий ObjectFactory, который должен быть достаточно способен создавать и вводить данный объект.

Нечто похожее на то, что делает Spring (не так уж много), как выставляя какой-либо метод setter в моем классе контроллера и позволяя этому заводу вводить в него указанный объект.

Любой начиная указатель в связи с этим будет полезно

Заранее спасибо

ответ

1

Мое приложение не очень большой implimentation так что не хотят, чтобы добавить любой DI контейнер (Spring/Guice)

Я думаю, ваш размер приложения не то, что вы не должны принимать во внимание (если это действительно не HelloWolrd :)). Как artbristol сказал, что точка в использовании уже существующей структуры заключается в том, что вы не ошибетесь в своей собственной реализации, что другие уже сделали и решили позже. Я не знаю, есть ли у вас практические знания Spring (но мы уже знаем, что вы хорошо знакомы с концепцией), поэтому я советую вам взглянуть на некоторые из основных руководств по этой теме, и вы увидите, как легко вы может начать использовать Spring.

http://www.vogella.de/articles/SpringDependencyInjection/article.html

Счастливый кодирования!

1

Просто используйте Spring или Guice, в зависимости от того вы больше знакомы. Они оба очень легкие, и другие люди смогут лучше понять ваше приложение, чем если вы откажетесь от собственной инъекции зависимости. Ваша собственная реализация в конечном итоге окажется похожей на одну из них, но с меньшей функциональностью и большим количеством ошибок.

+0

Я согласен с этим, но, поскольку приложение мало, скажем, 10 классов обслуживания, поэтому я не хочу добавлять дополнительные параметры. Спринг не входит в мой список из-за проблемы с лицензией :( –

+1

Spring имеет очень разрешительную лицензию, и Maven упрощает привязку зависимостей к вашему приложению.Если вы настаиваете на том, чтобы сворачивать свои собственные, просто выставляйте методы настройки и «проводьте» все ваши «бобы» за один раз при запуске приложения. Это позволит вам добавить Spring позже с минимальными изменениями. – artbristol

Смежные вопросы