문제

나의 디 초보,그래서 저를 용서하는 경우 이것은 잘못된 접근 방식 또는 바보 같은 질문입니다.

말하자 나는 형태를 만들어/를 업데이트하기 위해,그리고 나는 그것을 필요로 목록을 검색하의 제품 고객이 표시됩니다.나는에서 전달하고자 하는 순서는 객체의 편집,but I also want to inject the ProductsService 및 CustomersService 로 종속성입니다.

그래서 내가 원할 것입니다 내 IoC 컨테이너(중 하나 내가 가로)서비스를 제공하기 위해,하지만 그것을 할 것을 호출하는 코드를 공급하기 위해 개체를 편집할 수 있습니다.

어야 나는 선언의 생성자를 복용하기 위해 개체로 첫 번째 매개 변수 및 ProductsService 및 CustomersService 후에는,예를 들어:

public OrderForm(Order order, ProductsService prodsSvc, CustomersService custsSvc)

...거나 종속성을 먼저 올 및 순서 객체지막으로,예를 들어:

public OrderForm(ProductsService prodsSvc, CustomersService custsSvc, Order order)

그것은 중요합니까?그것은에 의존하는 IoC 컨테이너가 사용하는가?또는 거기에"좋은"방법이 있을까?

도움이 되었습니까?

해결책

에 동의하지 않는@aku 의 대답이다.

내가 생각하는 당신은 무엇을 잘하고 있는 또 다른 방법으로 그것을 할 수 없는 더 많거나 적은 옳습니다.예를 들어,하나의 수 있는지 질문이체해야에 따라 서비스에서는 첫 번째 장소입니다.

에 관계없이 디 느낌,그것은 도움이 명확하게 당신의 마음에 적어도의 종류는 각각 개체 등의 실제 상태(주),파생 상태(는 경우),그 종속성(서비스):

http://tech.puredanger.com/2007/09/18/spelunking/

에서 생성자 또는 방법을 내가 선호하는 실제 데이터 전달되는 첫 번째와 종속성 또는 외부에 물건을 전달할 마지막입니다.그래서 예에서 나는 것을 선호 처음이다.

다른 팁

매트는,당신은 혼합 해서는 안됩 정상적인 매개 변수를 종속성입니다.부터 개체에 작성될 내부의 IoC 컨테이너,당신은 어떻게 지정에 필요한 인수?

혼합 의존성 정상적인 인수인 논리 프로그램의 더 복잡합니다.

이 경우에는 더 나은 것을 선언속성 속성을(즉종속성 제거에서 생성자)또는 초기화 주문 필드 후 IoC 건설 양식 하고 해결 그것의 종속성을(즉제거 정상적인 매개변수에서 생성자).

도를 선언할 수 있습니다 당신의 모든 매개변수를 포함하여, 주문 로 종속성입니다.

내가 조금 느끼는 불안할 수 있도록 하는 방법에 대해 인스턴스의 양식을 인스턴스화할 수없이 필요한 참조하기 위해 인스턴스입니다.하나의 이유가 있는 것에서 저를 방지하고 선행 확인 null 명령이다.어떠한 추가 생각?

내 생각을 할 수 있는 몇 가지 편에서는 양식 개체만 인스턴스화에 의해 공장하는 방법을 보장하기 위해 속성을 설정한 후에 호출 IoC framework.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top