«dependency-injection» 태그된 질문

종속성 주입은 구성 요소의 종속성 (객체 인스턴스, 속성)이 생성자, 메서드 또는 필드 (속성)를 통해 설정되는 디자인 패턴입니다. 보다 일반적인 의존성 역전의 특수한 형태입니다.

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

2
의존성 주입이 너무 많습니까?
말 그대로 클래스의 종속성 인 모든 것에 대해 (Spring) Dependency Injection을 사용하는 프로젝트에서 작업합니다. 우리는 Spring 설정 파일이 약 4000 줄로 성장한 시점에 있습니다. 얼마 전 나는 YouTube에서 Bob Uncle의 대화 중 하나를 보았습니다 (불행히도 링크를 찾을 수 없었습니다). 분배된다. 이 접근법의 장점은 DI 프레임 워크를 응용 프로그램의 대부분에서 분리하는 …

12
코드 작성 방법의 점진적인 변화가 시스템 성능에 영향을 미쳤습니까? 내가 신경 써야 할까?
TD; DR : 내가 묻는 것에 대해 약간의 혼란이 있었으므로 여기에 질문의 원동력이 있습니다. 나는 항상 그 질문이 무엇인지 생각했습니다. 원래 잘 표현하지 않았을 수도 있습니다. 그러나 의도는 항상 " 모 놀리 식 단일 단위, 한 곳에서 모든 것을 수행하는 것, 하나의 파일, 단단히 결합 된 "코드 보다 본질적으로 느리게 …

3
의존성 주입은 어떻게 커플 링을 증가 시키는가?
의존성 주입 에 대한 Wikipedia 페이지 의 단점 섹션에서이를 알려줍니다. 종속성 주입은 서브 시스템 사용자가 해당 서브 시스템의 요구를 제공하도록 요구함으로써 커플 링을 증가시킵니다. 의존성 주입 에 대한 기사 링크 . 의존성 주입은 클래스가 구체적인 구현 대신 인터페이스를 사용하도록합니다. 그 결과 커플 링 이 줄어 듭니다 . 내가 무엇을 놓치고 …

4
"제어 역전"은 "빈혈 도메인 모델"을 홍보합니까?
마지막 프로젝트에서 IoC 컨테이너를 사용했을 때 무국적 엔티티와 Stateless Services의 대부분의 비즈니스 로직으로 끝났습니다. "Inversion of Control"을 사용하는 다른 개발자가 작성한 프로젝트를 보았으며 항상 "Anemic"입니다. "Anemic Domain Model"은 안티 패턴이므로 IoC 및 Rich Domain을 사용할 수 있습니까? 그들의 좋은 예, 그렇게하는 오픈 소스 프로젝트입니까?

6
Spring에 의해 어떤 클래스가 자동 연결되어야합니까 (종속성 주입을 사용하는 경우)?
나는 Spring에서 Dependency Injection을 한동안 사용 해 왔으며 그것이 어떻게 작동하고 그것을 사용하는 장단점이 무엇인지 이해합니다. 그러나 새 클래스를 만들 때 종종 궁금합니다.이 클래스는 Spring IOC 컨테이너에서 관리해야합니까? 그리고 @Autowired 주석, XML 구성, setter 주입, 생성자 주입 등의 차이점에 대해 이야기하고 싶지 않습니다. 내 질문은 일반적인 질문입니다. 변환기가있는 서비스가 있다고 …

4
차단 대 주입 : 프레임 워크 아키텍처 결정
내가 디자인하는 데 도움이되는이 프레임 워크가 있습니다. 몇 가지 일반적인 구성 요소를 사용하여 수행해야하는 일반적인 작업이 있습니다. 특히 로깅, 캐싱 및 이벤트 발생. 의존성 주입을 사용하는 것이 더 나은지 확실하지 않으며 (예를 들어 속성으로) 이러한 모든 구성 요소를 각 서비스에 도입하거나 서비스의 각 방법에 메타 데이터를 배치하고 이러한 공통 작업을 …

5
NInject를 사용하여 팩토리를 구축하는 가장 좋은 방법은 무엇입니까?
MVC3에서 NInject를 사용하여 의존성 주입에 익숙합니다. MVC3 응용 프로그램에서 작업하는 동안 NInject를 사용하여 사용자 지정 Controller Creation Factory를 개발 했으므로 생성 된 모든 컨트롤러에는이 Controller Factory를 통해 종속성이 주입됩니다. 이제 Windows 응용 프로그램을 개발하기 시작했습니다. 응용 프로그램 전체 종속성 주입을 사용하고 싶습니다. 즉, 단위 테스트를 용이하게하기 위해 모든 개체는 NInject를 …

6
의존성 주입; 상용구 코드를 줄이기위한 모범 사례
나는 간단한 질문을 가지고 있으며 답이 확실하지 않지만 시도해 봅시다. C ++로 코딩하고 전역 상태를 피하기 위해 의존성 주입을 사용하고 있습니다. 이것은 꽤 잘 작동하며 예기치 않은 / 정의되지 않은 동작으로 자주 실행되지 않습니다. 그러나 프로젝트가 성장함에 따라 상용구로 간주되는 많은 코드를 작성하고 있음을 알고 있습니다. 최악의 경우 : 실제 …

9
의존성 주입 : 프레임 워크를 사용해야합니까?
최근에 앱을 테스트 할 수 있어야하기 때문에 의존성 주입을 많이 수행하는 Python 프로젝트에서 작업했지만 프레임 워크를 사용하지 않았습니다. 때로는 모든 종속성을 수동으로 연결하는 것이 약간 지루했지만 때로는 전반적으로 훌륭했습니다. 객체를 여러 곳에서 만들어야했을 때 프로덕션 인스턴스를 만드는 함수 (때로는 해당 객체의 클래스 메서드)가있었습니다. 이 함수는 해당 객체가 필요할 때마다 호출되었습니다. …

4
생성자의 합법적 인 "실제 작업"?
디자인 작업을하고 있지만 계속 장애물을 치고 있습니다. XML 스키마를 구문 분석하여 생성 한 복잡한 노드 트리의 소유자 인 DOM (특정 클래스) 인 특정 클래스 (ModelDef)가 있습니다. 좋은 설계 원칙 (SOLID)을 따르고 결과 시스템을 쉽게 테스트 할 수 있는지 확인하고 싶습니다. DI를 사용하여 종속성을 ModelDef의 생성자로 전달하려는 모든 의도가 있습니다 (필요한 …

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

2
도메인 기반 디자인-엔터티 문제의 외부 종속성
Domain-Driven-Design을 시작하고 싶지만 시작하기 전에 해결하고 싶은 몇 가지 문제가 있습니다. :) 그룹과 사용자가 있고 사용자가 그룹에 가입하려고 할 때 groupsService.AddUserToGroup(group, user)메소드를 호출한다고 가정 해 봅시다 . DDD에서해야 할 일은 group.JoinUser(user)꽤 좋아 보인다. 사용자를 추가하기위한 유효성 검사 규칙이 있거나 사용자가 그룹에 추가 될 때 일부 외부 작업을 시작해야하는 경우 문제가 …

4
기능성 프로그래밍이 의존성 주입 패턴에 대한 대안입니까?
최근 에 C #에서 Functional Programming 이라는 제목의 책을 ​​읽었으며, 함수 프로그래밍 의 변경 불가능하고 상태 비 저장 특성은 종속성 주입 패턴과 유사한 결과를 달성하며 특히 단위 테스트와 관련하여 더 나은 접근 방식 일 수 있습니다. 두 가지 접근 방식을 모두 경험 한 사람이 자신의 생각과 경험을 공유하여 주된 질문에 …

6
DI / IoC를 사용하면“새”키워드가 모두 사라 집니까?
Dependency Injection과 Inversion of Control 컨테이너 를 사용하면 코드에서 " "키워드가 모두 제거 new됩니까? 다시 말해서, 모든 객체 / 종속성은 아무리 단순하거나 수명이 짧더라도 IoC 컨테이너 내에서 "등록"되어이를 사용해야하는 메소드 / 클래스에 주입되어야합니까? 그렇지 않다면, 의존성 / 개체가 IoC 컨테이너에 등록되는 것과 비교하여 new키워드 를 통해 구체적인 참조로 "인라인"으로 생성되는 …

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