23 가지 디자인 모델 의 공장 디자인 모델

19196 단어 디자인 모드
앞에서 말 했 듯 이 대학 2 학년 때 디자인 모델 의 수업 을 들 었 는데 그 때 들 은 것 은 어 리 석 은 것 이 었 다.지금 일 한 지 반년 이 되 었 으 니 물건 을 다시 주 우 는 김 에 기록 하고 싶다.공장 모델 은 평소에 접촉 이 많 으 니 공장 모델 부터...
무엇이 공장 설계 모델 입 니까?
공장 디자인 모델 은 말 그대로 생산 대상 에 사용 되 는 창설 형 디자인 모델 이다.대상 을 대상 으로 하 는 언어 에서 만물 은 모두 대상 이다. 이런 대상 들 은 모두 만들어 야 한다. 만약 에 만 들 때 new 대상 을 직접 만 들 면 이 대상 에 대한 결합 이 심각 하 다. 만약 에 우리 가 대상 을 바 꾸 려 면 모든 new 대상 의 부분 을 수정 해 야 한다. 이것 은 소프트웨어 가 설정 한 개폐 원칙 에 위배 된다. 만약 에 우리 가 공장 을 사용 하여 대상 을 생산 한다 면우 리 는 공장 과 만 접촉 하면 됩 니 다. 대상 과 의 결합 을 철저히 해제 하고 대상 을 바 꾸 려 면 공장 에서 이 대상 을 직접 바 꾸 면 됩 니 다. 대상 과 의 결합 을 해제 하 는 목적 을 달성 할 수 있 습 니 다.그래서 공장 모델 의 가장 큰 장점 은 디 결합 이다.
공장 모델 은 또 세 가 지 를 포함한다.
단순 공장
공장 방법
추상 공장
단순 공장 설계 모델
정의: 공장 방법, 생존 대상.
캐릭터:
추상 제품
구체 적 인 제품
구체 적 공장
제품 사용자
공장 모델 은 특정한 대상 을 만 드 는 공장 이기 때문에 먼저 추상 적 인 제품 이 필요 하 다. 예 를 들 어 사과, 귤 은 모두 과일 에 속 하기 때문에 우 리 는 먼저 과일 류 를 추상 화하 고 과일 공장 을 정의 하여 서로 다른 과일 을 생산 할 수 있다.
과일 인터페이스:
public interface Fruit{
    void eat();  //             
}

사과 나 귤
public class Apple implement Fruit{
    @Override
    void eat(){
        System.out.print("     ");
    }
}
public class Orange implement Fruit{
    @Override
    void eat(){
        System.out.print("     ");
    }
}

세부 공장: 과일 공장 류
public class FruitFactory{
    //              
    public static Fruit createFruit(String type){
        switch(type){
            case 'apple':
                return new Apple();
                break;
            case 'orange':
                return new Orange();
                break;
            // ...       
            default:
                System.out.print("         ");
        }
    }
}

제품 사용:
Apple apple = (Apple)FruitFactory.createFruit("apple");
apple.eat();//      

이상 은 간단 한 공장 모델 로 그 사상 은 바로 류 의 설립 을 공장 에 맡 기 고 특정한 유형 이 필요 할 때 공장 에서 찾 는 것 이다.간단 한 공장 모델 은 간단 하지만 단점 이 있다. 바로 내 가 새로운 과일 제품 을 생산 해 야 할 때 공장 을 수정 해 야 한 다 는 것 이다. 이것 은 6 대 설계 원칙 의 개폐 원칙 을 위반 한 것 이 분명 하 다.
이 문 제 를 해결 하기 위해 우 리 는 두 번 째 공장 모델 을 소개 한다.
공장 방법 설계 모델
정의: 공장 을 하나의 인터페이스 나 추상 류 로 추출 하고 구체 적 으로 어떤 제품 을 생산 하 는 지 는 하위 류 에 의 해 결정 된다.
캐릭터:
추상 제품
구체 적 인 제품
추상 공장
구체 적 공장
간단 한 공장 류 와 마찬가지 로 우 리 는 제품 을 추상 화하 고 과일 류 도 사용 해 야 한다. 이번에 우 리 는 공장 도 추상 화하 고 구체 적 으로 무엇 을 생산 하 는 지 는 하위 류 에 의 해 결정 된다.
과일 인터페이스, 사과 류, 귤 류 생략.
공장 인터페이스
public interface FruitFactory{
    Fruit createFruit();//        
}

애플 공장
public AppleFactory implements FruitFactory{
    @Override
    Fruit createFruit(){
        return new Apple();
    }
}
//     
public OrangeFactory implements FruitFactory{
    @Override
    Fruit createFruit(){
        return new Orange();
    }
}

제품 을 사용 하 다
AppleFactory af=new AppleFactory();
Apple apple = af.createFruit();

이상 의 방식 은 결합 을 풀 었 고 개폐 원칙 도 지 켰 지만 문 제 는 해결 되 지 않 았 습 니 다. 국 을 바 꾸 고 약 을 바 꾸 지 않 았 습 니 다. 제 가 필요 한 제품 이 많 으 면 공장 을 많이 만들어 야 하기 때문에 이런 방식 의 단점 도 뚜렷 합 니 다.그래서 우 리 는 마지막 공장 모델 을 다시 보 았 다.
추상 공장 설계 모델
정의: 관련 되 거나 서로 의존 하 는 대상 을 만 들 기 위 한 인 터 페 이 스 를 제공 합 니 다. 구체 적 인 종 류 를 지정 할 필요 가 없습니다.캐릭터:
추상 제품
구체 적 인 제품
추상 공장
구체 적 공장
추상 적 인 공장 과 공장 방법의 모델 은 대체적으로 같다. 차이 점 은 공장 방법 은 구체 적 인 제품 을 생산 하 는 것 이 고 추상 적 인 공장 은 똑 같 고 상대 적 인 관 계 를 가 진 제품 을 생산 할 수 있다 는 것 이다.중요 한 것 은 한 조, 한 조, 일련의 것 이다.예 를 들 어 샤 오미 핸드폰 (실수 로 샤 오미 에 게 광 고 를 했 습 니 다 ~) 을 생산 하면 샤 오미 핸드폰 은 시리즈 가 많 습 니 다. 샤 오미 노트, 홍 미 노트 등 이 있 습 니 다.만약 샤 오미 노트 가 생산 에 필요 한 부품 이 825 프로세서, 6 인치 스크린 이 있 고, 홍 미 는 650 프로세서 와 5 인치 스크린 만 있 으 면 된다.추상 적 인 공장 으로 실현:
cpu 인터페이스 와 구현 클래스
public interface Cpu {
    void run();

    class Cpu650 implements Cpu {
        @Override
        public void run() {
            System.out.print("650cpu   "); 
        }
    }

    class Cpu825 implements Cpu {
        @Override
        public void run() {
            System.out.print("825cpu   "); 
        }
    }
}

화면 인터페이스 와 구현 클래스
public interface Screen {

    void size();

    class Screen5 implements Screen {

        @Override
        public void size() {
            System.out.print("5     ");
        }
    }

    class Screen6 implements Screen {

        @Override
        public void size() {
           System.out.print("6     ");
        }
    }
}

공장 인터페이스
public interface PhoneFactory {

    Cpu getCpu();//   cpu

    Screen getScreen();//     
}

구체 적 인 공장 실현 유형: 샤 오미 핸드폰 공장 류
public class XiaoMiFactory implements PhoneFactory {
    @Override
    public Cpu getCpu() {
        return new Cpu825();//      
    }

    @Override
    public Screen getScreen() {
        return new Screen6();//6   
    }
}

구체 적 인 공장 실현 유형: 홍 미 핸드폰 공장 류
public class HongMiFactory implements PhoneFactory {

    @Override
    public Cpu getCpu() {
        return new Cpu650();//     
    }

    @Override
    public Screen getScreen() {
        return new Screen5();//    
    }
}

현 재 는 두 가지 cpu 와 두 가지 스크린 을 임의로 조합 하여 해당 하 는 성능 의 핸드폰 을 얻 을 수 있다. 상기 예 를 들 어 추상 적 인 공장 은 일련의 제품 생산 수 요 를 해결 할 수 있 고 대량의 양, 여러 계열 의 제품 에 대해 추상 적 인 공장 으로 더욱 잘 관리 하고 확장 할 수 있다.
총결산
1. 간단 한 공장 과 공장 방법 에 있어 이들 의 사용 방식 은 실제 적 으로 똑 같 습 니 다. 만약 에 제품 의 분류 와 명칭 이 확정 되면 수량 이 상대 적 으로 고정 되 고 간단 한 공장 모델 을 사용 하 는 것 을 추천 합 니 다.2. 추상 적 인 공장 은 상대 적 으로 복잡 한 문 제 를 해결 하고 일련의 대량의 대상 생산 에 적용 한다.

좋은 웹페이지 즐겨찾기