>일반적인 문제 >추상 팩토리 패턴은 무엇을 의미하나요?

추상 팩토리 패턴은 무엇을 의미하나요?

hzc
hzc원래의
2020-06-29 15:55:532940검색

추상 팩토리 패턴은 다른 공장의 공장이라고도 불리는 슈퍼 팩토리를 중심으로 다른 공장을 만드는 것입니다. 이러한 유형의 디자인 패턴은 객체를 생성하는 가장 좋은 방법을 제공하는 생성 패턴입니다.

추상 팩토리 패턴은 무엇을 의미하나요?

추상 공장 패턴은 슈퍼 공장 주변에 다른 공장을 만드는 것입니다. 기가팩토리는 다른 공장 중의 공장이라고도 불립니다. 이러한 유형의 디자인 패턴은 객체를 생성하는 최적의 방법을 제공하는 생성 패턴입니다.

추상 팩토리 패턴에서 인터페이스는 클래스를 명시적으로 지정하지 않고 관련 객체를 생성하는 역할을 담당하는 팩토리입니다. 생성된 각 팩토리는 팩토리 패턴에 따라 개체를 제공할 수 있습니다.

소개:

의도: 구체적인 클래스를 지정하지 않고 일련의 관련 또는 상호 의존 개체를 생성하기 위한 인터페이스를 제공합니다.

주요 솔루션: 주로 인터페이스 선택 문제를 해결합니다.

사용 시기: 시스템의 제품에는 둘 이상의 제품군이 있으며 시스템은 제품군 중 하나의 제품만 소비합니다.

해결 방법: 제품군에서 여러 제품을 정의합니다.

키 코드: 여러 개의 유사한 제품을 하나의 공장에 모으십시오.

적용 예: 근무 후 일부 파티에 참석하려면 비즈니스 의류(전체 세트, 특정 제품 시리즈), 패션 의류(전체 세트, 특정 제품 시리즈) 등 두 세트 이상의 옷이 있어야 합니다. 제품) 또는 가족용으로도 비즈니스 여성 의류, 비즈니스 남성 의류, 패셔너블 여성 의류, 패셔너블 남성 의류가 있을 수 있습니다. 이것들은 또한 완전한 세트, 즉 일련의 특정 제품입니다. (현실에 존재하지 않는 상황, 그렇지 않으면 공산주의에 들어갈 방법이 없지만 추상적인 공장 모델을 설명하는 것이 도움이 됩니다.) 가정에서 특정 옷장(콘크리트 공장)은 특정 종류만 보관할 수 있습니다. 이러한 옷(세트, 특정 제품 시리즈) 중에서 이 옷 세트를 집을 때마다 자연스럽게 이 옷장에서 꺼내게 됩니다. OOP 사고를 사용하여 모든 옷장(콘크리트 공장)은 옷장(추상 공장)이고 각 옷 세트에는 특정 상의(특정 제품), 바지(특정 제품) 제품)가 포함되어 있으며, 이러한 콘크리트 상의는 실제로 상의(특정 제품)임을 이해하십시오. 추상물), 콘크리트 바지도 바지(또 다른 추상물)이다.

장점: 제품군의 여러 개체가 함께 작동하도록 설계하면 클라이언트는 항상 동일한 제품군의 개체만 사용할 수 있습니다.

단점: 제품군 확장이 매우 어렵습니다. 시리즈의 특정 제품을 추가하려면 추상 Creator와 특정 제품 모두에 코드를 추가해야 합니다.

사용 시나리오: 1. QQ에서 스킨을 변경하고 전체 세트를 함께 변경합니다. 2. 다양한 운영 체제용 프로그램을 생성합니다.

참고: 제품군은 확장하기 어렵지만 제품 수준은 확장하기 쉽습니다.

구현:

우리는 Shape 및 Color 인터페이스와 이러한 인터페이스를 구현하는 엔터티 클래스를 생성합니다. 다음 단계는 추상 팩토리 클래스 AbstractFactory를 만드는 것입니다. 그런 다음 AbstractFactory를 확장하는 팩토리 클래스 ShapeFactory 및 ColorFactory를 정의합니다. 그런 다음 팩토리 생성자/생성자 클래스 FactoryProducer를 만듭니다.

AbstractFactoryPatternDemo, 데모 클래스는 FactoryProducer를 사용하여 AbstractFactory 객체를 얻습니다. 필요한 객체 유형을 얻기 위해 모양 정보 Shape(CIRCLE / RECTANGLE / SQUARE)를 AbstractFactory에 전달합니다. 동시에 필요한 개체 유형을 얻기 위해 색상 정보 Color(RED / GREEN / BLUE)를 AbstractFactory에 전달합니다.

추상 팩토리 패턴은 무엇을 의미하나요?

위 내용은 추상 팩토리 패턴은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.