2010-12-16 7 views
1

의존성 주입에 대한 질문 : 컨트롤러를 만들 때 컨트롤러를 데이터 모델에 대한 포인터로 초기화하는 아이디어를 이해합니다.의존성 삽입 : 컨트롤러간에 모델을 전달합니까?

Controller *controller = [[Controller alloc] initWithDataModel:[self dataModel]]; 

하지만 TechZen이 통과에 대해 언급 한 대답을 읽으 려는지 궁금합니다. 컨트롤러 간의 모델.

TechZen "종속성 주입은 뷰 컨트롤러의 데이터 모델 객체를 필요에 따라 컨트롤러를 보는 데 의존합니다." Cocoa touch connection and data design pattern

이것은 단순히 각 컨트롤러가 생성시 포인터로 초기화된다는 것을 말합니 까? 아니면 나중에 새 모델에 대한 포인터를 사용하여 데이터 모델을 할당/메소드를 통해 전달 되었습니까?

- (void)connectToModel:(id)newModel; 

답변

1

인용문은 나에게 정말 명확하지 않다,하지만 의존성 삽입 (Dependency Injection)의 기본 원리는 컨트롤러가 다른 사람 (= 주입)에 의해 제공되는 모델을 얻을 이다, 그들은 스스로를 추구하지 않습니다. 컨트롤러는 컨트롤러가 생성 될 때 (초기화 프로그램에서) 또는 나중에 제공 될 때 setter를 통해 제공 될 수 있습니다. DI의 기본 아이디어가 나오는 한 두 시나리오는 동일합니다.

+0

감사합니다. Zoul, 내가 생각했던 것, 그냥 개념을 이해하고 싶었습니다. 매우 감사 ... – fuzzygoat

관련 문제