이 기사에서는 Java 디자인 패턴의 공장 모델 구현 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
공장 모델은 주로 유연성을 향상시키기위한 목적을 달성하기 위해 객체를 생성하는 특정 프로세스를 보호하고 분리하기 위해 객체 생성을위한 전환 인터페이스를 제공합니다.
공장 모델은 세 가지 범주로 나뉩니다.
1) 간단한 공장 모델 : 일련의 제품 생성에 도움이되지 않습니다.
2) 공장 방법 : 다형성 공장으로도 알려져 있습니다.
3) 초록 공장 모델 : Toolbox라고도 알려진 제품군을 생산하지만 신제품 생성에는 도움이되지 않습니다.
1. 간단한 공장 모델
간단한 공장 모드는 정적 공장 방법 모드라고도합니다. 이름을 바꾸면이 패턴이 매우 간단해야한다는 것을 알 수 있습니다. 그 목적은 간단합니다. 개체를 만들기위한 인터페이스를 정의하십시오.
간단한 공장 모델에서, 공장 수업은 제품 클래스에 대한 인스턴스틱 호출의 중심에 있으며, 교통 경찰관이 차량 흐름에 서서 흐르는 차량을 방출하기로 결정하는 것처럼 어떤 제품 클래스를 인스턴스화 해야하는지 결정합니다. 그 구성을 살펴 보겠습니다.
1) 공장 역할 : 이것은 특정 비즈니스 논리 및 판단 논리를 포함하는이 모델의 핵심입니다. Java에서는 종종 콘크리트 클래스에 의해 구현됩니다.
2) 추상 제품 역할 : 일반적으로 특정 제품 또는 구현 된 인터페이스에 의해 상속 된 부모 클래스입니다. Java의 인터페이스 또는 추상 클래스로 구현됩니다.
3) 특정 제품 역할 : 공장 클래스가 만든 객체는이 역할의 사례입니다. Java의 콘크리트 클래스에 의해 구현되었습니다.
2. 공장 방법 모델
공장 방법 모델은 간단한 공장 모델의 추상화와 홍보입니다. Factory Method Model에서는 더 이상 하나의 공장 클래스에 의해 제품 클래스가 인스턴스화되어야한다고 결정하지 않습니다. 이 결정은 추상 공장의 서브 클래스로 넘겨집니다. 그 구성을 살펴 보겠습니다.
1) 초록 공장 역할 : 이것은 공장 방법 패턴의 핵심이며 응용 프로그램과 관련이 없습니다. 특정 공장 역할이 구현 해야하는 인터페이스 또는 상속 해야하는 부모 클래스입니다. Java에서는 추상 클래스 또는 인터페이스에 의해 구현됩니다.
2) 특정 공장 역할 : 특정 비즈니스 로직과 관련된 코드가 포함되어 있습니다. 응용 프로그램에서 호출하여 해당 특정 제품 객체를 생성합니다.
3) 추상 제품 역할 : 특정 제품 또는 구현 된 인터페이스에 의해 상속 된 부모 클래스입니다. Java에는 일반적으로 추상 클래스 나 인터페이스를 구현할 수 있습니다.
4) 특정 제품 역할 : 특정 공장 역할에 의해 생성 된 객체는이 역할의 사례입니다. Java의 콘크리트 클래스에 의해 구현되었습니다.
공장 방법 패턴은 추상 공장 역할에서 상속 된 여러 서브 클래스를 사용하여 간단한 공장 패턴에서 "신 클래스"를 대체합니다. 위에서 언급했듯이 이것은 물체에 대한 압력을 공유합니다. 그리고이를 통해 신제품 (즉, Nouveau Riche의 자동차)이 생성 될 때, 추상 제품 역할과 추상 공장 역할에 의해 제공되는 계약에 따라 생성되는 한, 기존 코드를 수정하지 않고도 고객이 사용할 수 있습니다. 공장 역할의 구조는 또한 개방 및 폐쇄의 원리를 준수한다는 것을 알 수 있습니다!
코드는 다음과 같습니다.
// 추상 제품 역할 공개 인터페이스 이동 가능 {void run ();} // 특정 제품 역할 공개 클래스 평면은 움직일 수있는 {@override public void run () {System.out.println ( "평면 ..."); }} public class broom은 움직일 수있는 {@override public void run () {System.out.println ( "Broom ......"); }} // 초록 공장 공개 공개 초록 클래스 VehicleFactory {Abstract Create ();} // 특수 공장 공개 클래스 비행기 변동 확장 VehicleFactory {public movable create () {return new Plane (); }} public class broomfactory 확장 vehiclefactory {public movable create () {return new Broom (); }} // 테스트 클래스 공개 클래스 테스트 {public static void main (String [] args) {VehicleFactory Factory = New Broomfactory (); 이동성 m = factory.create (); M.Run (); }}3. 초록 공장 패턴
코드는 다음과 같습니다
// 초록 공장 클래스 공개 초록 클래스 AbstractFactory {공개 초록 차량 CreateVehicle (); 공개 추상 무기 CreateWeapon (); 공개 초록 음식 createfood ();} // 콘크리트 공장 클래스, 음식, 차량, 무기가 추상적 인 클래스인데, 공개 클래스의 기본 Factorty 확장 {@override public food createfood () {return new Apple (); } @override public Vehicle CreateVehicle () {return 새 차 (); } @override public geigon createweapon () {return new Ak47 (); }} // 테스트 클래스 공개 클래스 테스트 {public static void main (string [] args) {AbstractFactory f = new DefaultFactory (); 차량 v = f.createvehicle (); v.run (); 무기 W = F.CreateWeapon (); w.shoot (); 음식 a = f.createfood (); A.printname (); }}추상 공장 패턴에서, 추상 제품은 하나 이상일 수 있으므로 하나 이상의 제품 패밀리를 형성 할 수 있습니다. 단 하나의 제품 패밀리의 경우 추상 공장 패턴은 실제로 공장 방법 패턴으로 변성됩니다.
요약 :
(1) 간단한 공장 패턴은 특정 클래스별로 다른 클래스의 인스턴스를 만드는 것입니다. 부모 클래스는 동일하고 부모 클래스는 구체적입니다.
(2) 공장 방법 패턴은 공개 인터페이스를 정의하는 추상적 인 상위 클래스가 있고 서브 클래스는 콘크리트 객체를 생성 할 책임이 있다는 것입니다. 이것의 목적은 클래스의 인스턴스화를 서브 클래스로 지연시키는 것입니다.
(3) 추상 공장 패턴은 특정 클래스를 지정하지 않고 일련의 관련 또는 상호 의존적 인 객체를 생성하는 인터페이스를 제공합니다. 여러 제품으로 계층 구조를 목표로합니다. 공장 방법 모델은 제품의 계층 구조를 목표로합니다.
더 많은 Java 관련 컨텐츠를 보려면이 사이트에 관심이있는 독자는 "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약 및"Java Cache Cache Operation Tips "의 주제를 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.