자바 공장 설계 모델 - 공장 방법

책 은 N 구 이전에 나의 박문 인 간단 한 공장 디자인 모델 을 받 았 는데 오늘 내 가 말 하고 자 하 는 것 은 공장 방법 모델 이다. 이것 은 간단 한 공장 에 대한 추상 적 이 고 보급 이다.우리 함께 한번 봅 시다.
우선 우 리 는 그것 의 구성 을 말한다.
1) 추상 적 인 공장 역할: 이것 은 공장 방법 모델 의 핵심 으로 응용 프로그램 과 무관 하 다.구체 적 인 공장 역할 이 실현 되 어야 할 인터페이스 나 계승 해 야 할 부류 다.자바 에 서 는 추상 류 나 인터페이스 로 이 루어 집 니 다.2) 구체 적 인 공장 역할: 구체 적 인 업무 논리 와 관련 된 코드 를 포함한다.응용 프로그램 에서 호출 하여 해당 하 는 구체 적 인 제품 의 대상 을 만 듭 니 다.3) 추상 적 인 제품 역할: 구체 적 인 제품 계승 의 부류 또는 실현 의 인터페이스 이다.자바 에 서 는 일반적으로 추상 류 나 인터페이스 로 이 루어 진다.4) 구체 적 인 제품 역할: 구체 적 인 공장 역할 이 만 든 대상 은 바로 이 역할 의 사례 이다.자바 에 서 는 구체 적 인 클래스 로 이 루어 집 니 다.
그 다음 에 우 리 는 하나의 예 로 그의 구성 을 분석 하면 너 는 더욱 깊이 이해 할 수 있다.
1) 추상 적 인 공장 역할:
public interface Factory {
}

2) 추상 적 인 제품 캐릭터
public interface Product {
}

3) 구체 적 인 제품 역할:
public class Cookies implements Product {
public Cookies(){
    System.out.println("Cookies ....");
}
}
public class IceCream  implements Product{
public IceCream(){
    System.out.println("IceCream....");
}
}

4) 구체 적 인 공장 역할:
public class CookiesFactory implements Factory{
public Product newProduct(){
    return new Cookies();
}
}
public class IceCreamFactory implements Factory{
public Product newProduct(){
    return new IceCream();
}
}

5) 테스트:
public class Test {
public static void main(String[] args) {
    new CookiesFactory().newProduct();
    new IceCreamFactory().newProduct();
}
}

 자, 프로그램의 작성 과 시연 에 따라 프로 그래 밍 사고 와 사상 을 이해 할 수 있 을 것 입 니 다. 서로 다른 제품 을 공장 인 터 페 이 스 를 실현 하 는 서로 다른 공장 류 에 두 었 습 니 다. (우 리 는 모든 제품 에 공장 을 제공 하여 '생산' 을 제공 합 니 다)그러나 공장 방법 에 도 한계 가 있 습 니 다. 바로 제품 이 복잡 한 등급 구 조 를 가 질 때 입 니 다. 예 를 들 어 공장 에서 가전제품 을 생산 하 는 것 외 에 핸드폰 제품 도 생산 합 니 다. 그러면 가전제품 은 핸드폰 이 바로 두 가지 제품 가족 입 니 다. 이 두 가족 아래 에 수량 이 많은 제품 이 포함 되 어 있 고 모든 제품 은 여러 가지 모델 이 있 습 니 다. 이렇게 해서 하나의 복 원 된 제품 이 형성 되 었 습 니 다.잡다 한 제품 트 리 입 니 다. 공장 방법 으로 이 제품 의 가족 시스템 을 설계 하려 면 각 모델 의 제품 에 대응 하 는 공장 류 를 만들어 야 합 니 다. 수백 가지 심지어 수천 가지 제품 이 있 을 때 도 대응 하 는 수백 수천 개의 공장 류 가 있어 야 합 니 다. 이것 은 전설 적 인 폭발 이 발생 했 습 니 다. 앞으로 의 유지 에 있어 서 는 그야말로 재난 입 니 다.
그럼 더 좋 은 해결책 은 없 을 까? 헤헤, 뜸 들 여 내일 이 화 제 를 계속 하 자...

좋은 웹페이지 즐겨찾기