디자인 패턴의 공장 패턴 간단한 공장 패턴

디자인 패턴의 공장 패턴 간단한 공장 패턴

공장 패턴의 기원 :

우리는 사용 목적, 새로운 작업의 사용을 만들 때. 경우에 당신은 새로운 회의를 만들기 위해 여러 개체를 사용하고 있습니다. 따라서, 모델은 공장 새로운 운영 에이전트를 모델링하는 데 사용됩니다. 공장 모델의 기원에 따르면, 우리는 공장 모델 스키마를 만들 속하는 것을 볼 수 있습니다. 객체를 생성 할 수있는 가장 좋은 방법을 제공한다.

출처 : 카이거 자바 (kaigejava)

주요 공장 패턴 분류 :

document_image_rId9.png

간단한 공장 패턴, 팩토리 메소드 패턴, 추상 팩토리 패턴

간단한 공장 패턴 :

간단한 공장 패턴은 23 개 디자인 패턴에 속하지 않습니다. 또한 정적 팩토리 메소드로 알려진 간단한 공장 패턴은 공장 모델 가족이 모델로 사용하는 것이 가장 간단하다. 또한 다른 식물의 실현의 특수 모드로 이해 될 수있다.

어떻게 이해?

예를 들면 : 팩토리 클래스, 추상 클래스의 제품.

실생활의 예 : 국수 가게, 우리는 국수보다 더 생성 할 수 있습니다.

예를 들면 : 토마토 달걀 국수를 만들 수 있습니다 국수, 쇠고기 국수, 국수, 호각 얼굴, biangbiang 표면 건조 국수.

우리는이 시나리오를 시뮬레이션 할 수 있습니다 :

의 프로젝트 구조를 살펴 보자 :

document_image_rId10.png


설명 :

1 : 국수 인터페이스 클래스

2 : 특정 구현 클래스 국수

3 : 간단한 팩토리 클래스 (국수 객체)

4 : 시험 유형

의 국수 인터페이스 클래스를 살펴 보자 :

INoodlesInterface

document_image_rId11.png

: 토마토와 달걀 국수 내부 객체 - 우리는보고, 국수 구현 클래스를 취할

공용 클래스  TomatoAndEggNoodles는  구현  INoodlesInterface을 {

   개인  문자열  noodlesName ;

   공공  TomatoAndEggNoodles () {}

   공공  TomatoAndEggNoodles (문자열 noodlesName) {

       . noodlesName  = noodlesName;

   }

   @보수

   public void noodlesdescription() {

       System.out.println("大爷,您的"+this.noodlesName+"价格为:10元。");

   }

}

document_image_rId12.png

其他具体面条实现类里面类似。这里就不一一贴出来了。

我们来看看面馆对象:

document_image_rId13.png

里面由三部分:

菜单部分、根据菜单序号制作面条、根据面条名称制作面条。

我们来看看根据菜单序号制作面条的:

public  static INoodlesInterface makeNoodlesByMenuType(int noodletType){

   switch (noodletType){

       case NOODLES_TYPE_1:

           return new TomatoAndEggNoodles("西红柿鸡蛋面");

       case NOODLES_TYPE_2:

           return new HandPulledNoodleSoupWithBeef("牛肉拉面");

       case NOODLES_TYPE_3:

           return new HandPulledNoodleSoupWithBeef("刀削面");

       case NOODLES_TYPE_4:

           return new NoodleWithPork("哨子面");

       case NOODLES_TYPE_5:

           return  new BiangBiangNoodles("biangbiang面");

       case NOODLES_TYPE_6:

           return new HotAndDryNoodles("热干面");

       default:

           return  new HotAndDryNoodles("热干面");

   }

}

document_image_rId14.png

另一个方法类似。

查看测试类:

document_image_rId15.png

查看运行结果:

document_image_rId16.png

运行结果,达到我们预期的。

现在我们来总结下简单工厂模式:

简单工厂模式几个角色:

document_image_rId17.png

1:共有的抽象父类或者接口。如:司小司面馆的面条接口对象

2:继承或是实现该接口的具体子类。如:西红柿鸡蛋面、biangbiang面等

3:创建对象的简单工厂类。如:司小司的面馆

이벤트를 트리거 :

document_image_rId18.png

메뉴 또는 국수 이름의 수에 의해 생성 된 트리거 클래스 팩토리 객체입니다.

간단한 공장 패턴 기능을 살펴 보자 :

document_image_rId19.png

클래스를 통해. 콘크리트 클래스를 사용하여 추상 클래스 인터페이스 또는하지를 만들 수있는 중요한 방법입니다 문 스위치 문을 판단하고, 따라서 해당 제품을 만들 수 있다고합니다.

연락 카이거 - "카이거 자바 (kaigejava)

개인 블로그 : www.kaigejava.com

그 중 중요한 방법의 생성은 일반적으로 정적이다. 그래서, 간단한 공장 패턴은 정적 공장으로 알려져있다.



추천

출처blog.51cto.com/kaigejava/2432367