C\#디자인 모델 시리즈 튜 토리 얼-단순 공장 모델
구체 적 인 유형의 실례 화 를 정적 공장 방법 에 맡 기 면 GOF 의 23 가지 디자인 모델 에 속 하지 않 지만 현실 에 서 는 자주 사용 된다.
2.모드 속 캐릭터
2.1 공장 클래스(Simple Factory):구체 적 인 클래스 를 만 드 는 정적 방법 만 포함 합 니 다.
2.2 추상 적 인 제품(Product):간단 한 공장 에서 돌아 올 제품 을 정의 합 니 다.
2.3 구체 적 인 제품(Concrete Product):구체 적 인 제품.
3.패턴 판독
3.1 단순 공장 모델 의 일반화 도표
3.2 간단 한 공장 모델 의 코드 실현
/// <summary>
/// , sealed ,
/// </summary>
public class SimpleProductFactory
{
/// <summary>
/// ,
/// </summary>
/// <param name="productType"></param>
/// <returns></returns>
public static Product CreateProduct(string productType)
{
Product product = null;
switch (productType)
{
case "A":
product = new ConcreteProductA();
break;
case "B":
product = new ConcreteProductB();
break;
}
return product;
}
}
/// <summary>
///
/// </summary>
public abstract class Product
{
public Product()
{ }
public abstract void Opration();
}
/// <summary>
/// A
/// </summary>
public class ConcreteProductA : Product
{
public ConcreteProductA() { }
public override void Opration()
{
// A
}
}
/// <summary>
/// B
/// </summary>
public class ConcreteProductB : Product
{
public ConcreteProductB() { }
public override void Opration()
{
// B
}
}
4.모델 총화4.1 장점:
4.1.1 직책 이 단일 하고 간단 하 며 클 라 이언 트 코드 와 구체 적 으로 실현 하 는 결합 을 실현 했다.
4.1.2 공장 류 는 전체 모델 의 관건 이다.필요 한 논리 적 판단 을 포함 하고 외부 에서 주어진 정보 에 따라 구체 적 인 대상 을 만들어 야 할 지 결정 한다.
4.1.3 공장 류 를 사용 함으로써 외부 에서 구체 적 인 제품 대상 을 직접 만 드 는 난감 한 상황 에서 벗 어 날 수 있 고'소비'대상 만 책임 지면 된다.이 대상 들 이 어떻게 만 들 고 어떻게 조직 하 는 지 는 상관 할 필요 가 없다.
4.1.4 각자 의 직책 과 권 리 를 명 확 히 하고 전체 소프트웨어 체계 구조의 최적화 에 유리 하 다.
4.2 단점:
4.2.1 공장 류 가 모든 사례 의 설립 논 리 를 집중 시 켰 기 때문에 높 은 내부 집적 책임 배분 원칙 을 위반 하고 모든 설립 논 리 를 한 공장 류 에 집중 시 켰 다.그것 이 만 들 수 있 는 종 류 는 사전에 고려 할 수 밖 에 없 으 며,새로운 종 류 를 추가 하려 면 공장 류 를 바 꿔 야 한다.그래서 개방 폐쇄 원칙 에 위배 된다.
4.2.2 시스템 에서 구체 적 인 제품 유형 이 계속 증가 할 때 공장 류 가 서로 다른 조건 에 따라 서로 다른 사례 를 만들어 야 한 다 는 수요 가 나타 날 수 있다.이런 조건 에 대한 판단 과 구체 적 인 제품 유형 에 대한 판단 이 교차 되 어 모듈 기능 의 확산 을 피하 기 어렵 고 체계 적 인 유지 와 확장 에 매우 불리 하 다.
주의:이런 단점 들 은 공장 방법 모델 에서 어느 정도 극복 되 었 습 니 다.
4.3 사용 필드:
4.3.1 공장 류 가 설립 을 담당 하 는 대상 이 비교적 적다.
4.3.2 고객 은 공장 류 에 들 어 오 는 매개 변수 만 알 고 대상(논리)을 어떻게 만 드 는 지 에 관심 이 없다.
4.3.3 단순 공장 은 높 은 내부 집적 책임 배분 원칙 을 위반 하기 쉬 우 므 로 일반적으로 간단 한 경우 에 만 적용 된다.
이상 이 바로 본문의 전체 내용 입 니 다.여러분 께 참고 가 될 수 있 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.