C\#디자인 모델 시리즈 튜 토리 얼-공장 방법 모델

1.개술:
대상 을 만 드 는 데 사용 할 인 터 페 이 스 를 정의 하여 하위 클래스 가 어떤 종 류 를 예화 할 지 결정 합 니 다.공장 방법 은 한 종류의 실례 화 를 하위 클래스 로 지연 시 켰 다.
2.모드 속 캐릭터
2.1 추상 공장(Creator):이 추상 클래스(또는 인터페이스)는 대상 을 만 드 는 공장 방법 을 설명 하고 제품 유형의 대상 을 되 돌려 줍 니 다.
2.2 구체 적 인 공장(ConcreteCreator):공장 방법 을 다시 정의 하고 구체 적 인 Concrete 제품 인 스 턴 스 를 되 돌려 줍 니 다.
2.3 추상 적 인 제품(Product):공장 방법 이 만 든 대상 을 정의 합 니 다.
2.4 구체 적 인 제품(Concrete Product):구체 적 인 제품 은 제품 추상 류 에서 계승 한다.
3.패턴 판독
3.1 공장 방법 모델 의 일반화 유형 도
//img.jbzj.com/file_images/article/201606/201606020847121.png
3.2 공장 방법 모델 의 코드 실현

  /// <summary>
  ///     ,       Product   
  /// </summary>
  public abstract class Creator
  {
    /// <summary>
    ///        Product  
    /// </summary>
    /// <returns></returns>
    public abstract Product CreateProduct();
  }

  /// <summary>
  ///      ,    A     ,       Creator
  /// </summary>
  public class ProductACreator : Creator
  {
    public override Product CreateProduct()
    {
      return new ConcreteProductA();
    }
  }

  /// <summary>
  ///      ,    B     ,       Creator
  /// </summary>
  public class ProductBCreator : Creator
  {
    public ProductBCreator() { }

    public override Product CreateProduct()
    {
      return new ConcreteProductB();
    }
  }

  /// <summary>
  ///     ,             
  /// </summary>
  public abstract class Product
  {
    public Product()
    { }

    public abstract void Opration();
  }

  /// <summary>
  ///     A,   Product
  /// </summary>
  public class ConcreteProductA : Product
  {
    public ConcreteProductA() { }

    public override void Opration()
    {
      // This is product A
    }
  }

  /// <summary>
  ///     B,   Product
  /// </summary>
  public class ConcreteProductB : Product
  {
    public ConcreteProductB() { }

    public override void Opration()
    {
      // This is product B
    }
  }

4.모델 총화
4.1 장점:
공장 방법 은 조건 부 분기(공장 류 와 분기 의 결합 해제)를 제거 하여 간단 한 공장 이 수정 개방 에 대한 문 제 를 해결 했다.
4.2 단점:
공장 방법 모델 이 실 현 될 때 클 라 이언 트 는 어느 공장 을 실례 화하 여 구체 적 인 제품 에 대한 구축 을 실현 할 지 결정 해 야 한다.선택 판단 은 여전히 존재 한다.즉,공장 방법 모델 은 간단 한 공장 의 논리 적 판단 을 클 라 이언 트 에 게 맡 겨 처리 해 야 한다.
간단 한 공장 모델 에 있어 기능 을 증가 하 는 것 은 공장 류 를 수정 하 는 것 이다.그러나 공장 방법 모델 에 대해 서 는 클 라 이언 트 가 수정 되 었 다.
4.3 사용 필드:
어떤 제품 에 대해 호출 자 는 어떤 구체 적 인 공장 서 비 스 를 사용 해 야 하 는 지 정확하게 알 고 이 구체 적 인 공장 을 예화 하여 구체 적 인 제품 을 생산 해 야 한다.
하위 클래스 의 수량 이 고정 되 지 않 아 언제든지 새로운 기능 하위 클래스 가 나타 날 수 있다.
이상 이 바로 본문의 전체 내용 입 니 다.여러분 께 참고 가 될 수 있 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기