> 백엔드 개발 > C++ > 매개변수화된 팩토리 메서드에서 과도한 종속성을 효과적으로 관리하려면 어떻게 해야 합니까?

매개변수화된 팩토리 메서드에서 과도한 종속성을 효과적으로 관리하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2025-01-21 01:32:09
원래의
867명이 탐색했습니다.

How Can I Effectively Manage Excessive Dependencies in a Parameterized Factory Method?

의존성 주입과 제어 반전을 이용한 팩토리 메소드

팩토리 메서드와 DI(종속성 주입) 패턴에 익숙하지만 매개변수화된 팩토리 메서드에 종속성이 많은 특정 사례에 대한 지침이 필요합니다.

문제: 매개변수화된 팩토리에 대한 과도한 의존

팩토리 클래스에서 생성자에는 6개의 종속성이 필요하며, 팩토리에서 생성된 각 자동차 인스턴스에는 서로 다른 종속성 세트가 있습니다. 이로 인해 공장 관리가 어려워지고 CreateCar 메서드에 switch case 문이 도입됩니다.

대체 방법

두 가지 대안을 제안하셨습니다. 자동차 인스턴스를 공장 생성자에 직접 삽입하거나 서비스 로케이터를 사용하는 것입니다. 그러나 이러한 솔루션에는 각각 단점이 있습니다. 자동차 인스턴스를 주입하는 것은 공장 설계 원칙을 위반하므로 서비스 로케이터를 사용하는 것은 일반적으로 권장되지 않습니다.

해결책: 의존성 주입을 위한 전략 패턴

팩토리에서 switch case 문을 사용하는 대신 종속성 주입을 위한 전략 패턴을 채택하는 것을 고려해 보세요. 이 패턴을 사용하면 각각 특정 유형의 자동차를 만드는 데 전념하는 여러 팩토리 구현을 만들 수 있습니다.

구현:

  1. 인터페이스 정의: ICarFactoryICarStrategy에 대한 인터페이스를 소개합니다. ICarFactory은 자동차 인스턴스를 만드는 데 사용되는 팩토리를 나타내고, ICarStrategy은 팩토리 모음을 나타냅니다.
  2. Create Factory: Car1Factory, Car2Factory 등 자동차 유형별로 구체적인 팩토리 클래스를 구현합니다. 이러한 팩토리는 생성자를 통해 필요한 종속성을 주입합니다.
  3. 구현 전략: CarStrategy을 구현하고 ICarStrategy 인스턴스 배열을 포함하는 ICarFactory 클래스를 만듭니다. CarStrategyCreateCar 메서드는 요청한 자동차 유형을 생성할 수 있는 팩토리를 찾기 위해 팩토리를 반복합니다.
  4. 사용: 코드에 CarStrategy 인스턴스를 삽입합니다. 그런 다음 종속성을 직접 지정하지 않고도 CreateCar 메서드를 사용하여 자동차 인스턴스를 인스턴스화할 수 있습니다.

전략 모드의 장점:

  • 팩토리 메소드에서 switch case문 제거
  • 신차공장을 쉽게 추가할 수 있습니다
  • 각 공장의 DI 의존성을 촉진
  • 공장 등록을 지원하는 중앙 위치

위 내용은 매개변수화된 팩토리 메서드에서 과도한 종속성을 효과적으로 관리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿