에 공장 건설의 장점
1
@In(create="true")
private WeirdDao weirdDao;
는 무엇인가 .. .
@Name("weirdDao")
public class WeirdConcreteDao implements WeirdDao
2
@In
private WeirdDao weirdDao;
...
@Name("weirdConcreteDao")
public class WeirdConcreteDao implements WeirdDao
...
components.xml
<factory auto-create="true" name="weirdDao" value="#{weirdConcreteDao}"/>
내 이론은 두 번째 예 솔은 객체의 생성 돌보는 것이있다 (희망적으로) 인스턴스의 풀과 같은 것을 제어합니다.
이 두 가지 사용법에 대한 pro/con에 대한 설명이 있습니까?
미리 감사드립니다.(내 경우에 DAO)를 심 2 나는 심에 주입 객체의 두 개의 서로 다른 전략을 본 적이
1
A
답변
1
성능 측면에서 이점은이 경우별로 중요하지 않습니다. 그러나 문제는 오히려 철학적입니다.
Factory Pattern은 잘 알려진 창조적 디자인 패턴입니다. Seam에서는 일반적으로 을 사용하여 Entity
또는 Domain
클래스의 인스턴스를 만듭니다. 그들은 일반적으로 데이터를 보유하고 처리 또는 비즈니스 로직을 가지고 있지 않습니다.
Service 또는 DAO와 같은 빈을 주입하는 경우 일반적으로 factory를 사용하지 않습니다.
주된 원인은 서비스 또는 DAO 유형 bean의 작성이 상태를 보유하지 않거나 모든 상태에 의존한다는 것입니다. 그렇다면 왜 컨테이너에 대한 책임을 쉽게 전가 할 수 있는지에 대한 팩토리 메서드 나 구성을 작성하는 데 어려움을 겪습니다.
그러나 Entity
또는 Domain
콩의 경우 국가마다 다를 수 있습니다. 예를 들어, 로그인 한 사용자에 따라 배우자 콩을 작성해야합니다. 당신이 사용자에 따라 배우자에게 빈을 생성하는 팩토리 메소드를 작성하는 것이하려면. 일반적으로 컨테이너에 의존하지 않습니다.
희망이 도움이됩니다.
관련 문제
- 1. 심 보스 서블릿 주입
- 2. 내 브라우저에서이 링크를 본 적이
- 3. 힘내 : 나는 전망을 본 적이 무엇부터
- 4. 나는 두 개의 서로 다른 장고 프로젝트를
- 5. 두 개의 서로 다른 쿼리
- 6. 두 개의 서로 다른 객체의 주소가 다른 이유는 무엇입니까?
- 7. 나는 다음과 같은 캐스트 구문 본 적이
- 8. 두 개의 서로 다른 as_json 메소드
- 9. 두 개의 서로 다른 아형
- 10. 2 개의 서로 다른 관리 빈에 2 개의 EJB를 주입 할 수없는 이유는 무엇입니까?
- 11. 두 개의 서로 다른 프로젝트
- 12. 두 개의 서로 다른 금액
- 13. Grails는 : 새로 고침보기 후이 특정한 경우에 내가 비슷한 질문에 다양한 답변을 본 적이
- 14. 두 개의 서로 다른 dataframes
- 15. 두 개의 서로 다른 네비게이션
- 16. 두 개의 서로 다른 글꼴
- 17. 두 개의 서로 다른 테이블
- 18. 두 개의 서로 다른 배열
- 19. 두 개의 서로 다른 아이콘
- 20. 나는 두 개의 서로 다른 URL에서이 개 JSON 파일이
- 21. 2 개의 계정이 2 개의 서로 다른 마스터 페이지를 참조합니까?
- 22. 2 개의 서로 다른 원격 브랜치로 푸시?
- 23. 삽입이 게시물에 같이 데이터베이스를 연결하면 나는 또 다른 하나 개의 테이블에서 데이터를 삽입하는 코드를 본 적이
- 24. 더하기 기호 난에 본 적이
- 25. 두 개의 서로 다른 테이블에서 두 개의 서로 다른 값에 대해 테이블의 필드 선택
- 26. 나는 두 개의 서로 다른 방법을 사용하여 서버에 POST 호출을 만들고있어하지만 난 두 개의 서로 다른 반응
- 27. 누구나 Control.SendToFront를 본 적이 있습니까?
- 28. 로드는 두 개의 서로 다른 JSON 조건
- 29. 이러한 CSS 속성을 사용해 본 적이 있습니까?
- 30. 두 개의 서로 다른 형태의하지만 서로 다른 유효성 검사 규칙