팩토리 패턴 분류:
1) Simple Factory 패턴(Simple Factory)
2) Factory Method Pattern(Factory Method)
3) Abstract Factory Pattern(Abstract Factory)
추천 관련 비디오 튜토리얼: java 학습
간단한 팩토리 패턴
간단한 팩토리 패턴은 정적 팩토리 메서드 패턴이라고도 합니다. 이름 변경을 보면 이 모드가 매우 간단하다는 것을 알 수 있습니다. 그 목적은 간단합니다. 객체를 생성하기 위한 인터페이스를 정의하는 것입니다.
1) 팩토리 역할: 이 모델의 핵심이며 특정 비즈니스 로직과 판단 로직을 포함합니다. 자바에서는 종종 구체적인 클래스로 구현됩니다.
2) 추상 제품 역할: 일반적으로 특정 제품에 의해 상속된 상위 클래스 또는 구현된 인터페이스입니다. Java에서는 인터페이스나 추상 클래스로 구현됩니다.
3) 특정 제품 역할: 팩토리 클래스에서 생성된 객체는 이 역할의 인스턴스입니다. Java의 구체적인 클래스로 구현됩니다.
추상 팩토리 패턴:
추상 팩토리 패턴의 목적은 클라이언트가 여러 제품군의 제품 개체를 생성할 수 있는 인터페이스를 제공하는 것입니다.
그리고 추상 팩토리 패턴을 사용하려면 다음 조건을 충족해야 합니다. :
1) 시스템에는 여러 제품군이 있으며, 시스템은 한 번에 하나의 제품군만 소비할 수 있습니다.
2) 동일한 제품군에 속하는 제품은 그에 맞게 사용해야 합니다.
추상 팩토리 패턴의 다양한 역할(팩토리 메소드와 동일):
1) 추상 팩토리 역할: 팩토리 메소드 패턴의 핵심으로, 애플리케이션과는 아무런 관련이 없습니다. 특정 팩토리 역할이 구현해야 하는 인터페이스이거나 상속되어야 하는 상위 클래스입니다. 자바에서는 추상 클래스나 인터페이스로 구현됩니다.
코드 프리젠테이션:
实例:面条工厂 实现工厂模式 ···
다음은 일부 누들 코드 조각을 보여줍니다
package am2; public class Daoxiaomian extends Miantiao{ public void show(){ System.out.println("我生产刀削面"); } }
다음은 일부 팩토리 패턴 코드 조각을 보여줍니다.
package am2; /** * 工厂模式 * @author hadoop * */ public class Factory { public static final String XIMIANTIAO="ximiantiao"; public static final String KUANMIANTIAO="kuanmiantiao"; public static final String DAOXIAOMIAN="daoxiaomian"; public static Miantiao getMiantiao(String name){ Miantiao miantiao = new Miantiao(); switch(name){ case "ximiantiao": miantiao = new Ximiantiao(); break; case "kuanmiantiao": miantiao = new Kuanmiantiao(); break; case "daoxiaomian": miantiao = new Daoxiaomian(); break; } return miantiao ; } }
다음은 일부 라자냐 코드 조각을 보여줍니다.
package am2; public class Kuanmiantiao extends Miantiao{ public void show(){ System.out.println("我生产宽面条"); } }
다음은 일부 인스턴스화 코드 조각을 보여줍니다
package am2; public class Miantiao { public void show(){ } }
The 다음은 일부 스파게티 코드 조각을 보여줍니다.
package am2; public class Ximiantiao extends Miantiao{ public void show(){ System.out.println("我生产细面条"); } }
다음은 공장 모드 테스트 코드 조각입니다. 공장 코드조각에서 다양한 면을 받아보세요
package am2; /** * 工厂模式,我想从工厂获取到各种面条 * * @author hadoop * */ public class Test { public static void main(String[] args) { Miantiao miantiao = Factory.getMiantiao(Factory.XIMIANTIAO); miantiao.show(); Miantiao miantiao1 = Factory.getMiantiao(Factory.KUANMIANTIAO); miantiao1.show(); Miantiao miantiao2 = Factory.getMiantiao(Factory.DAOXIAOMIAN); miantiao2.show(); } }
추천 관련 글: 자바 언어 입문
위 내용은 Java의 팩토리 패턴에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!