위로 또는 아래로?Inversion of Control (Dependency Inversion) 시스템의 이벤트는 어떤 방식으로 진행됩니까?
저는 매우 시각적 인 사람입니다. 내 응용 프로그램을 계층 구조로 생각하고 있는데, 위쪽은 루트이고 아래쪽은 리프입니다.
IoC 컨테이너가 포함 된 개체의 책임/기능을 모르고 있다는 것도 이해하고 있습니다. 대신, 포함 된 객체는 추상화 된 인터페이스를 통해 컨테이너 (즉, "컨텍스트")에 대해 알고 있습니다.
UP : 포함 된 개체의 인식이되도록 (? 비 IOC의 방법) 는 내 이벤트는 부모에 체인의 책임 패턴을 통해 내 계층 구조 위쪽으로 거품의 바닥에서 파견해야 그들의 용기? 예 : 내 GUI의 버튼은 청취 컨테이너 창이 닫히면 응답하는 창이 걸린 인 CLICKED 이벤트를 전달합니다.
DOWN : (IOC의 방법?) 내 이벤트가 컨테이너에 의해 내 계층 구조의 상단에서 파견 컨테이너가 그 내용을 모르고이되도록 용기에 직접 가입 한 포함 된 청취자에 도달해야 하는가? 예 : 컨테이너 윈도우는 자신을 닫음으로써 응답하는 포함 된 버튼 객체에 의해 직접 수신 된 인 CLOSED 이벤트를 전달한 다음 자신을 닫음으로써 창을 닫습니다.
'Up'은 자연스러운 것처럼 보이지만 IoC에는 컨테이너에 포함 된 개체의 동작을 인식하지 못하기 때문에 이벤트에 응답하고 싶지 않습니다.
시스템의 거의 모든 부분에서 이벤트를 수신 할 수 있음을 알고 있지만 IOC 참가자들 간의 기본적인 관계를 이해하고 싶습니다. 그래서 제대로 구성 할 수 있습니다.. 나는 사람들이 일반적으로 구조적 관계, 의존성 등에 관계없이 그들의 프로그램에 관한 이벤트를 분산시키지 않는다고 가정하고있다.
내 질문은 IoC 시스템의 책임 배치에서 발생한다. 컨테이너에 의존적 인 객체에 대한 서비스를 제공하는 컨테이너의 책임 (비 IoC 패러다임을 반전 시킴 - 따라서 "Dependency Inversion"과 동의어). 이것은 IoC의 매우 중요하고 기본적인 구성 요소 인 것 같습니다. 책임의 변화입니다. 나는 다른 객체에 의존하는 예제가 될 수 있도록 객체의 함수를 호출하거나 이벤트를 청취하는 것을 고려한다. 객체가 다른 객체를 기반으로하는 자체 동작을 정의 할 때, 한 객체가 다른 객체를 알고 있고 다른 객체가 알고있는 것이 있기 때문에 종속 객체라고 부릅니다. 다른 객체의 컨텍스트 내에서 자체를 정의했습니다. 알 수 있듯이 IoC는 포함 된 객체가 컨테이너에 종속되도록 설정되므로 컨테이너에 대한 모든 것을 아는 것은 포함 된 객체의 책임이어야합니다. 그리고 그것은 포함 된 객체에 대해 알기위한 컨테이너의 책임이되어서는 안됩니다. 그래서, CONTAINER가 포함 된 객체의 이벤트를 듣고있는 것은 저에게 그 내용에 대해 뭔가를 알고 있기 때문에 책임의 잘못 배치 된 것처럼 생각됩니다.
이 질문은 종속성 '주입'과 '반전'이 다른 것을 학습 한 후에 다시 설명합니다. 이전 질문은 here입니다.
이것은 진정으로 최고 품질의 답변입니다. 그 위대함에 감사드립니다. 감사 :) – Pup