2012-01-09 3 views
0

응용 프로그램을 개발하는 동안 나는 어떻게 진행해야하는지 명확하지 않은 경우를 쳤습니다. 내 응용 프로그램은 매우 큰 구현이 아니므로 DI 컨테이너 (스프링/Guice)를 추가하고 싶지는 않습니다.일반 개체 공장 만들기

내 서비스 레이어를 호출해야하는 곳에서 ControlObject 레이어가 있고 ServiceObject 인스턴스를 만드는 두 가지 방법이 있습니다.

  1. 단순한 new 연산자를 사용하십시오.
  2. 팩토리 레이어를 만듭니다.

저는 공장 패턴을 알고 있지만, 의도 한 객체를 만들고 주입 할 수있는 일반 ObjectFactory를 작성하려고합니다.

스프링이하는 것과 비슷한 점은 컨트롤러 클래스에서 일부 setter 메서드를 노출하고 해당 팩터 리에서 지정한 개체를 주입하도록하는 것과 같습니다.

이 점에서 모든 시작 포인터가 사전

에서

감사

답변

1

내 응용 프로그램은 너무 어떤 DI 컨테이너 (봄/Guice)

내가 응용 프로그램의 크기는 고려하지 할 게 아니라고 생각을 추가하지 않으 매우 큰도 구현하지 않습니다 (HelloWolrd가 아니라고 가정하면 :)). artbristol은 이미 존재하는 프레임 워크를 사용할 때의 요점은 다른 사람들이 이미 을 수정하고 나중에을 해결했다는 것을 실수로 자제하지 않는다는 점입니다. 실용적인 봄 지식이 있는지는 잘 모르겠지만 (이미 잘 알고있는 개념을 잘 알고 있습니다) 주제에 대한 기본 자습서를 살펴 보시고 Spring을 사용하여 시작할 수 있습니다.

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

해피 코딩!

1

그냥 당신이 더 잘 알고 중 봄 또는 Guice을 사용할 도움이 될 것입니다. 둘 다 매우 가볍고 다른 사람들은 자신이 의존성 주입을하는 것보다 더 쉽게 응용 프로그램을 이해할 수 있습니다. 자신의 구현은 궁극적으로 그 중 하나처럼 보이지만 결국 기능과 버그가 줄어들게됩니다.

+0

저는 동의합니다.하지만 응용 프로그램이 작기 때문에 10 개의 서비스 클래스라고 말하면 여분의 depedencies를 추가하고 싶지 않습니다. 라이센스 문제로 인해 내 목록에 스프링이 없습니다. ( –

+1

스프링은 매우 관대 한 라이센스를 가지고 있습니다. Maven을 사용하면 종속성을 앱에 묶는 것이 매우 쉽습니다. 자신 만의 롤링을 고집한다면 setter 메소드를 노출하고 애플리케이션 시작시 한 번에 모든 'bean'을 '연결'하십시오. 그러면 Spring을 추가 할 수 있습니다. 나중에 최소한의 변화로. – artbristol