1. 팩토리 메소드 패턴 소개
정의: 팩토리 메소드 패턴은 단순한 팩토리 패턴을 더욱 추상화한 것입니다. 장점은 원래 코드를 수정하지 않고도 시스템에 새로운 제품을 도입할 수 있다는 것입니다. 열고 닫는 원리. 객체 인스턴스화를 위한 인터페이스를 만들고 하위 클래스가 인스턴스화할 클래스를 결정하도록 하여 클래스의 인스턴스화 프로세스가 하위 클래스로 지연될 수 있도록 합니다.
2. 팩토리 메소드 패턴 클래스 다이어그램 UML
3. 팩토리 메소드 패턴 역할 설명
추상 팩토리(AbstractFactory): 호출자가 특정 팩토리의 팩토리 메소드에 액세스할 수 있는 인터페이스를 제공합니다. create the product
Concrete Factory(ConcreteFactory): 추상 팩토리에서 정의한 메소드를 구현하고 특정 제품의 생성을 완료합니다.
Abstract Product(Product): 제품의 사양을 정의하고 제품의 주요 특징과 성능을 설명합니다.
ConcreteProduct(콘크리트 프로덕트): 추상적인 제품을 정의하는 방법을 구현합니다. 특정 공장과 특정 제품이 일대일로 대응됩니다.
Factory 메소드 패턴 구현:
/** * 抽象工厂:提供具体工厂的共有方法 */ public interface Product { public void show(); } public class ConcreteProduct1 implements Product { @Override public void show() { System.out.println("具体产品1展示..."); } } public class ConcreateProduct2 implements Product { @Override public void show() { System.out.println("具体产品2展示..."); } } /** * 抽象工厂 */ public interface AbstractFactory { public Product createProduct(); } /** * 具体工厂1产生具体产品1 */ public class ConcreteFactory1 implements AbstractFactory { @Override public Product createProduct() { ConcreteProduct1 concreteProduct1 = new ConcreteProduct1(); System.out.println("具体工厂1创建具体产品1..."); return concreteProduct1; } public class ConcreteFactory2 implements AbstractFactory { @Override public Product createProduct() { System.out.println("具体工厂2产生具体产品2..."); return new ConcreateProduct2(); } }
호출 방법:
//获取具体产品1 Product product = new ConcreteFactory1().createProduct(); product.show(); Product product1 = new ConcreteFactory2().createProduct(); product1.show();
사용 단계:
- 추상 제품 클래스 생성 및 제품의 공개 메서드 정의
- 구체적인 제품 클래스 생성(추상 제품 인터페이스 구현) 및 생성된 특정 제품 정의
- 호출자가 특정 팩토리 클래스의 메서드를 호출합니다. 다양한 특정 제품의 인스턴스 생성
- 5. 팩토리 패턴 다시 탐색
문제 해결 : 간단한 팩토리 클래스에 새 제품을 추가할 때 팩토리 클래스의 메소드 로직을 수정하는 메소드 로직 문제를 해결했습니다. 특별한 개폐 원리.
팩토리 클래스(특정 팩토리)의 하위 클래스로 특정 제품 생성을 종료합니다. 이때 팩토리 클래스는 더 이상 모든 제품 생성을 담당하지 않고 특정 팩토리에서 구현해야 하는 인터페이스를 제공하므로 팩토리 메서드는 새 제품을 추가하므로 팩토리 클래스의 논리를 수정할 필요가 없지만 열기 및 닫기 원칙을 준수하는 새 팩토리 하위 클래스를 추가합니다.
6. 장점과 단점
장점:
- 높은 유연성으로 새로운 제품을 만들려면 해당 팩토리 클래스를 하나만 더 작성하면 됩니다.
- 사용자는 공장 이름만 지시하면 됩니다. 원하는 제품을 얻으려면 제품의 구체적인 생성 과정을 안내할 필요가 없습니다
- 단점:
- 클래스 수가 너무 많아 복잡해지기 쉽습니다
- 각 공장에서 한 종류의 제품만 생산하면 다음 단점은 추상 팩토리 패턴 솔루션을 사용할 수 있다는 것
- 7. 응용 시나리오
고객은 제품을 만드는 공장 이름에만 관심이 있고 특정 제품을 알 필요가 없습니다. 제품명
위 내용은 Java 코드를 사용하여 팩토리 메소드 패턴을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
