제어의 역전은 무엇입니까?
IOC (Version of Control)는 일반적인 코드 구조가 여러 고유하고 구체적인 서브 루틴을 지배하는 데 사용되는 프로그래밍 기술입니다. 이것은 특정 코드가 다수의 재사용 가능한 일반 서브 루틴을 거꾸로 관리하는 전통적인 프로그래밍 방법을 바꿉니다. 통제 역전은 일반적으로 프로그래머가 특정 코드를 한 번 이상 재사용 할 필요가 없다는 것을 알고있는 상황에서 일반적으로 사용됩니다. 프로그램의 서브 루틴을 전체 프로그램을 실질적으로 변경하지 않고도 유연한 디자인을 전환 할 수있는 유연한 디자인을 허용합니다.
전통적인 프로그래밍에서, 코드의 본문은 개별 기능을 수행하는 일반적인 서브 루틴을 반복적으로 요구합니다. 예를 들어, 회계를 다루는 프로그램에서 최종 사용자가 특정 주문 번호를 검색 할 수 있도록 설계된 서브 루틴은 프로그램의 여러 섹션에서 여러 번 호출되어 사용자가 수행 할 수 있습니다.프로그램의 여러 다른 영역에서의 일반적인 검색 알고리즘. 코드 재사용은 프로그래밍 프로세스를 단순화하지만 프로그래머가 코드가 사용되는 다른 섹션에 영향을 미치지 않고 프로그램의 한 섹션에 대한 검색 알고리즘을 조정하려는 경우 복잡성을 만듭니다.
.제어 시나리오의 역전에서 동일한 예제를 사용하면 단일 검색 서지 라인은 여러 영역에서 여러 번 호출되지 않습니다. 대신, 프로그램의 각 섹션에는 자체적으로 자체 포함 된 검색 서지자가 포함됩니다. 이로 인해 처음에 프로그램을 코딩하는 데 필요한 시간이 증가하지만 디자인 프로세스의 개별 서브 루틴에 나중에 만들어야 할 특정 조정을 단순화합니다. 하나의 특정 영역에서 하나의 서열을 변경하면 프로그램의 나머지 부분이 영향을받지 않습니다.
advantagIOC의 ES
이 기술의 주요 장점 중 하나는 대규모 팀에서 일할 때 프로그램 설계가 훨씬 쉬워지는 것입니다. 팀 구성원 간의 의사 소통은 근로자의 수가 증가함에 따라 점점 더 어려워 지므로 통제의 역전을 통해 각 팀은 자체 개별 루틴을 프로그래밍 할 수있어 서로 독립적으로 기능 할 수 있습니다. 또한 각 팀의 서브 루틴에 남아있는 오류가 프로그램의 특정 섹션에만 영향을 미치기 때문에 시스템의 버그의 영향을 단순화합니다. 이로 인해 시스템의 한 부분에서 문제가 발견되면 프로그램의 나머지 부분은 완전히 작동해야합니다.
IOC의 단점
제어의 반전은 프로그램 설계를 단순화 할 수 있지만 객체를 설계하는 방법에 대한 사전 지식이 필요합니다. 각 루틴을 개별적으로 프로그래밍 할 수 있지만 IOC 제작자는 변경해야 할 경우 각 항목을 프로그래밍하는 방법을 알아야하므로 항상 시작하기가 쉽지는 않습니다.IOC를 고용하는 NG 프로그래머. 또한 각 일상적인 기능이 독립적으로 기능하기 때문에 일부 회사가 눈살을 찌푸릴 수있는 외부 세계에 볼 수 있습니다.