독학 설계 모델 의 공장 방법 모델

1. 정의
공장 방법 모델: 생 성 대상 의 인 터 페 이 스 를 정의 하여 하위 클래스 가 어떤 종 류 를 예화 할 지 결정 합 니 다. 설령 하나의 예화 가 하위 클래스 로 지연 되 더 라 도.
2. 공장 방법 모델 의 네 가지 요소
추상 적 인 공장 (Creator) 역할: 공장 방법 모델 의 핵심 으로 응용 프로그램 과 무관 하 다.모드 에서 만 든 대상 의 공장 류 는 이 인 터 페 이 스 를 실현 해 야 합 니 다.
구체 적 인 공장 (Concrete Creator) 역할: 추상 적 인 공장 인 터 페 이 스 를 실현 하 는 구체 적 인 공장 류 로 응용 프로그램 과 밀접 한 관 계 를 가 진 논 리 를 포함 하고 응용 프로그램 에 의 해 호출 되 어 제품 대상 을 만 듭 니 다.
추상 적 인 제품 (Product) 역할: 공장 방법 모델 이 만 든 대상 의 초 유형, 즉 제품 대상 의 공동 아버지 류 또는 공동으로 가 진 인터페이스 이다.
구체 적 인 제품 (Concrete Product) 역할: 이 역할 은 추상 적 인 제품 캐릭터 가 정의 하 는 인 터 페 이 스 를 실현 했다.어떤 구체 적 인 제품 은 전문 적 인 구체 적 인 공장 이 설립 되 는데, 그들 사이 에는 종종 일일이 대응 된다.
3. 실현
공장 방법 모델 의 네 가지 요소 에 따라 우 리 는 이렇게 설계 할 수 있다.
(1) Creator 인터페이스, 모든 작업 을 정의 합 니 다.
공장 방법 류 는 모두 이 인 터 페 이 스 를 계승 해 야 하 며, 성명 하 는 방법 은 IProduct 형식의 대상 을 되 돌려 주 는 것 이다.
<span style="font-family:Times New Roman;">interface IFactory
{
    IProduct ProductCreate();
}</span>

(2) Creator 인 터 페 이 스 를 실현 하 는 구체 적 인 공장 류 는 몇 개의 제품 이 있 으 면 몇 개의 공장 류 가 있 고 각 공장 류 는 Creator 인 터 페 이 스 를 계승 하여 IProduct 서브 클래스 의 인 스 턴 스 를 만 드 는 데 사용 된다.
<span style="font-family:Times New Roman;">public class ProductOneFactory:IFactory
{
    public IProduct ProductCreate()
    {
        return new ProductCreate();
    }
}</span>
<span style="font-family:Times New Roman;">public class ProductTwoFactory:IFactory
{
    public IProduct ProductCreate()
    {
        return new ProductCreate();
    }
}</span>

(3) IProduct 의 인터페이스 로 제품 의 공 통 된 방법 을 정의 한다.
<span style="font-family:Times New Roman;">interface IProduct
{
    void Show();
}</span>

(4) 구체 적 인 제품 유형 은 IProduct 인 터 페 이 스 를 실현 한다.
<span style="font-family:Times New Roman;">public class ProductOne:IProduct
{
    public void Show()
    {
        //do something
    }
}</span>
<span style="font-family:Times New Roman;"></span><pre name="code" class="csharp" style="font-size: 14px; line-height: 24px; text-indent: 28px;"><span style="font-family:Times New Roman;">public class ProductTw<span style="text-indent: 2em;">o:IProduct</span></span>

{ public void Show() { //do something }}
 
 

(5)客户端调用

<span style="font-family:Times New Roman;">IFactory factory = new ProductOneCreate();
       IProduct product = factory.ProductCreate();
       product.Show();</span>

이상 은 기본적으로 공장 방법 모델 에 대한 실현 을 완 성 했 고 창설 형 모델 로 서 공장 방법 모델 은 '개방 - 폐쇄 원칙' 을 따 랐 다. 만약 에 특정한 유형의 제품 을 추가 하려 면 이 유형의 IProduct 인터페이스 와 IFactory 인 터 페 이 스 를 계승 하면 된다.공장 방법 모델 은 대상 의 생 성 을 집중 적 으로 밀봉 하여 대상 을 교체 할 때 큰 변경 을 하지 않 아 도 되 고 고객 프로그램 과 제품 대상 의 결합 성 을 낮 출 수 있다.한 제품 을 늘 릴 때마다 해당 제품 류 와 공장 류 를 늘 려 개 발 량 을 추가 로 늘 려 야 한 다 는 단점 이 있다.

좋은 웹페이지 즐겨찾기