공장 3형제-추상 공장 모델

3819 단어 공장 모델

추상적인 공장 모델이란 무엇입니까


추상적인 공장 모델은 하나의 대상을 만드는 데 해결 방안을 제공했다.공장 방법 모델에 비해 추상적인 공장 모델 중의 구체적인 공장은 하나의 제품을 만드는 것이 아니라 일족 제품을 만드는 것을 책임진다.추상 플랜트 모델은 다음과 같이 정의됩니다.
Abstract Factory Pattern(Abstract Factory Pattern): 특정 클래스를 지정하지 않고 관련 또는 상호 의존 객체를 만드는 일련의 인터페이스를 제공합니다.Kit 모드라고도 하는 추상 플랜트 모드는 객체 작성 모드입니다.
추상적인 공장 모델에서 모든 구체적인 공장은 여러 개의 공장 방법을 제공하여 다양한 유형의 제품을 생산하는 데 사용했는데 이런 제품들은 하나의 제품족을 구성했다.
추상 플랜트 모드 맵에는 다음과 같은 역할이 포함됩니다.
● AbstractFactory(추상 공장): 각 방법이 하나의 제품에 대응하는 일련의 패밀리 제품을 만드는 방법을 설명합니다.
● ConcreteFactory(구체적인 공장): 추상적인 공장에서 설명하는 제품을 만드는 방법을 실현하고 구체적인 제품 그룹을 생성한다. 이런 제품들은 하나의 제품 족을 구성하고 각 제품은 특정한 제품 등급 구조에 있다.
● AbstractProduct(추상 제품): 각 제품의 인터페이스를 설명하고 추상 제품에서 제품이 가지고 있는 업무 방법을 설명한다.
● ConcreteProduct(구체적인 제품): 구체적인 공장에서 생산되는 구체적인 제품 대상을 정의하고 추상적인 제품 인터페이스에서 설명하는 업무 방법을 실현한다.
추상 공장에서는 다양한 유형의 제품을 만들기 위한 여러 공장 방법이 설명되어 있는데, 추상 공장은 인터페이스일 수도 있고 추상 클래스일 수도 있고 구체적인 클래스일 수도 있으며 그 전형적인 코드는 다음과 같다.
abstract class AbstractFactory {
    public abstract AbstractProductA createProductA(); // 
    public abstract AbstractProductB createProductB(); // 
    ……
}

구체적인 공장은 추상적인 공장을 실현했다. 모든 구체적인 공장 방법은 특정한 제품 대상으로 돌아갈 수 있고 같은 구체적인 공장이 만든 제품 대상은 하나의 제품족을 구성한다.각 공장 클래스의 일반 코드는 다음과 같습니다.
class ConcreteFactory1 extends AbstractFactory {
    // 
public AbstractProductA createProductA() {
    return new ConcreteProductA1();
}

// 
public AbstractProductB createProductB() {
    return new ConcreteProductB1();
}

……
}

추상 공장 모델 총결


추상 공장 모델은 공장 방법 모델의 진일보한 연장이다. 기능이 더욱 강한 공장 유형을 제공하고 비교적 좋은 확장성을 가지기 때문에 소프트웨어 개발에서 광범위하게 응용될 수 있다. 특히 일부 구조와 API 라이브러리의 디자인에서 자바 언어의 AWT(추상 창 도구 패키지)에서 추상 공장 모델을 사용했다.그것은 추상적인 공장 모델을 사용하여 서로 다른 운영체제에서 응용 프로그램이 존재하는 운영체제와 일치하는 외관 인터페이스를 실현한다.추상적인 공장 모델도 소프트웨어 개발에서 가장 자주 사용하는 디자인 모델 중의 하나다.

1. 주요 장점


추상 플랜트 모델의 주요 이점은 다음과 같습니다.
(1) 추상적인 공장 모델은 구체적인 유형의 생성을 분리하여 고객이 무엇을 만들었는지 알 필요가 없다.이런 격리로 인해 구체적인 공장을 교체하는 것이 상대적으로 쉬워지고 모든 구체적인 공장은 추상적인 공장에서 정의한 공공 인터페이스를 실현했기 때문에 구체적인 공장의 실례를 바꾸기만 하면 어느 정도에 전체 소프트웨어 시스템의 행위를 바꿀 수 있다.
(2) 한 제품족의 여러 대상이 함께 작업하도록 설계되었을 때 클라이언트는 시종일관 같은 제품족의 대상만 사용할 수 있다.
(3) 새로운 제품족을 늘리는 것은 편리하고 기존의 시스템을 수정할 필요가 없으며'개폐원칙'에 부합된다.

2. 주요 단점


추상 공장 모델의 주요 단점은 다음과 같다.
새로운 제품의 등급 구조를 늘리는 것은 번거롭고 기존 시스템에 대한 비교적 큰 수정이 필요하며 심지어 추상층 코드를 수정해야 하기 때문에 이것은 분명히 비교적 큰 불편을 가져올 것이며'개폐원칙'에 위배된다.

3. 적용 장면


다음과 같은 경우 추상 플랜트 모드를 고려할 수 있습니다.
(1) 하나의 시스템은 제품 유형의 실례가 어떻게 만들어지는지, 조합되고 표현되는지에 의존해서는 안 된다. 이것은 모든 유형의 공장 모델에 매우 중요하다. 사용자는 대상의 창설 과정에 관심을 두지 않고 대상의 창설과 사용을 결합시킨다.
(2) 시스템에는 한 개 이상의 제품족이 있는데 매번 그 중의 한 제품족만 사용한다.프로파일 등을 통해 사용자는 동적으로 제품족을 바꿀 수도 있고 새로운 제품족을 쉽게 추가할 수도 있다.
(3) 동일한 제품족에 속하는 제품은 함께 사용되며 이 구속은 반드시 시스템의 디자인에 나타나야 한다.같은 제품족의 제품은 아무런 관계도 없는 대상이 될 수 있지만 하나의 운영체제 아래의 단추와 텍스트 상자, 단추와 텍스트 상자 사이에는 직접적인 관계가 없지만 모두 하나의 운영체제에 속하는 것과 같은 공통된 제약조건이 있다. 이것은 운영체제의 유형이다.
(4) 제품의 등급 구조가 안정적이고 디자인이 완성된 후에 시스템에 새로운 제품 등급 구조를 추가하거나 기존의 제품 등급 구조를 삭제하지 않는다.

좋은 웹페이지 즐겨찾기