«inversion-of-control» 태그된 질문

IoC (Inversion of Control)는 절차 적 프로그래밍과 비교하여 시스템의 제어 흐름이 반전되는 일부 소프트웨어 아키텍처 설계의 측면을 설명하는 추상적 인 원리입니다.


7
제어 역전이 왜 그렇게 명명 되었습니까?
내가 본 정의에서 Inversion of Control을 정의하기 위해 단어 가 사용 invert되거나 control전혀 사용되지 않습니다. 정의 위키 백과 IoC (inversion of control)는 객체 지향 프로그래밍 측면에서 표현 된 프로그래밍 기법으로, 객체 결합은 런타임에 어셈블러 객체에 의해 바인딩되며 일반적으로 정적 분석을 사용하여 컴파일 타임에 알려지지 않습니다. ~ http://en.wikipedia.org/wiki/Inversion_of_control 마틴 파울러 Inversion …


7
단일 책임 원칙-코드 조각화를 피하려면 어떻게해야합니까?
팀 리더가 SOLID 개발 원칙을 강력하게 옹호하는 팀에서 일하고 있습니다. 그러나 그는 복잡한 소프트웨어를 집 밖으로 가져 오는 데 많은 경험이 부족합니다. 우리는 이미 매우 복잡한 코드 기반에 SRP를 적용한 상황에 처해 있으며, 이제는 매우 조각화되어 이해하고 디버깅하기가 어렵습니다. 개인 또는 보호 된 클래스 내의 메소드가 '변경 이유'를 나타내는 것으로 …

5
IOC 컨테이너, OOP 원칙 위반
IOC 컨테이너의 목적은 무엇입니까? 그 이유를 다음과 같이 단순화 할 수 있습니다. OOP / SOLID 개발 원칙을 사용하면 Dependency Injection이 복잡해집니다. 여러 레벨에 대한 종속성을 관리하고 구성을 통해 종속성을 재귀 적으로 전달하는 최상위 진입 점이 있거나 필요에 따라 종속성을 빌드하는 팩토리 / 빌더 패턴 및 인터페이스에 다소 중복 된 코드가 …

4
의존성 주입을위한 프레임 워크가 필요한 이유는 무엇입니까? [닫은]
나는 구현의 제어로서 Inversion of Control 원칙과 Dependency Injection에 대해 더 많이 읽었으며 그것을 이해하고 있다고 확신합니다. 기본적으로 '클래스 내에서 클래스 멤버의 인스턴스화를 선언하지 마십시오'라고 말하는 것 같습니다. 대신 인스턴스화를 생성자를 통해 전달하고 할당해야합니다. 외부 소스에서 클래스에 '주입'되었습니다. 이것이 단순한 것처럼 보인다면 왜 주석 또는 주석으로 이것을 구현하는 guice 또는 …

7
.NET에서 DI를 구현하는 "올바른"방법은 무엇입니까?
비교적 큰 응용 프로그램에서 종속성 주입을 구현하려고하지만 경험이 없습니다. Unity와 Ninject와 같은 IoC와 의존성 인젝터의 개념과 구현을 연구했습니다. 그러나 나를 피하는 한 가지가 있습니다. 애플리케이션에서 인스턴스 생성을 어떻게 구성해야합니까? 내가 생각하고있는 것은 몇 가지 특정 클래스 유형에 대한 객체를 만드는 논리를 포함하는 몇 가지 특정 팩토리를 만들 수 있다는 것입니다. …


2
의존성 주입으로 구성을 어떻게 관리합니까?
저는 DI / IOC의 열렬한 팬입니다. 어려운 종속성을 처리 / 추출하는 데 유용하며 인생을 조금 더 쉽게 만듭니다. 그러나 나는 그것에 대해 작은 그립을 가지고 있는데, 어떻게 해결 해야할지 모르겠다. DI / IOC의 기본 아이디어는 개체가 인스턴스화 될 때 모든 해당 종속성이 생성자 내에 미리 채워져 있다는 것입니다. 그러나 IMHO에는 …

1
프레임 워크 작성시 Dependency Injection / IoC 컨테이너 실습
많은 프로젝트에서 .Net에 다양한 IoC 컨테이너 (Castle.Windsor, Autofac, MEF 등)를 사용했습니다. 나는 그들이 자주 학대받는 경향이 있으며 여러 가지 나쁜 관행을 장려합니다. 특히 플랫폼 / 프레임 워크를 제공 할 때 IoC 컨테이너 사용에 대해 확립 된 관행이 있습니까? 프레임 워크 작성자로서의 목표는 코드를 가능한 한 간단하고 사용하기 쉽게 만드는 것입니다. …

3
IoC 컨테이너로 팔아주세요
코드에서 IoC 컨테이너를 사용하는 것이 좋습니다. 동기는 간단하다. 다음 의존성 삽입 코드를 사용하십시오. class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> dep(new MockDependency); UnitUnderTest uut(dep); //Test here } 으로: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest() …

3
의존성 주입을 받았지만 누군가 IoC 컨테이너의 필요성을 이해하도록 도울 수 있습니까?
이것이 또 다른 질문의 반복처럼 보이는 경우에 사과하지만, 주제에 관한 기사를 찾을 때마다 대부분 DI에 대해 이야기합니다. 그래서 나는 DI를 얻지 만 모든 사람들이 들어가는 것처럼 보이는 IoC 컨테이너의 필요성을 이해하려고합니다. IoC 컨테이너의 요점은 실제로 종속성의 구체적인 구현을 "자동 해결"하는 것입니까? 어쩌면 내 클래스에는 몇 가지 종속성이없는 경향이 있으며 그로 …

5
IoC 용 인터페이스 대신 Func 사용
컨텍스트 : C #을 사용하고 있습니다. 나는 수업을 설계했고, 수업을 분리하고, 단위 테스트를 더 쉽게하기 위해 모든 의존성을 전달하고 있습니다. 내부적으로 객체 인스턴스화가 없습니다. 그러나 필요한 데이터를 얻기 위해 인터페이스를 참조하는 대신 범용 Func를 참조하여 필요한 데이터 / 동작을 반환합니다. 의존성을 주입 할 때 람다 식으로 할 수 있습니다. 나에게 …

5
구현하기 전에 인터페이스 API를 작성해야합니까?
최근에보다 "조직화 된"프로그래밍에 대해 연구하고 있으며 구현이 아닌 인터페이스로 프로그래밍해야한다는 것을 배웠습니다. 이를 염두에두고, 가능한 경우 구현을 작성하기 전에 인터페이스에서 프로젝트를 "스케치"하는 것이 더 좋을까요? 이 경우 타사 라이브러리 (예 : Lidgren)를 사용하는 경우 인터페이스로 랩핑하고 IOC 컨테이너를 통해 해결해야합니까? 아니면 인터페이스에 노출해도됩니까?

5
TDD를 따르는 것이 필연적으로 DI로 이어 집니까?
TDD (Test Driven Development), DI (Dependency Injection) 및 IoC (Inversion of Control)를 동시에 수행하는 방법을 배웠습니다. TDD를 사용하여 코드를 작성할 때 항상 클래스 생성자에서 DI를 사용합니다. 이것이 TDD를 배우는 방법 때문인지 또는 이것이 TDD의 자연스러운 부작용인지 궁금합니다. 그래서 내 질문은 이것입니다 : 외부 서비스에 의존하지 않는 TDD 교장과 작문 단위 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.