자바 공장 설계 모델 - 공장 방법
우선 우 리 는 그것 의 구성 을 말한다.
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();
}
}
자, 프로그램의 작성 과 시연 에 따라 프로 그래 밍 사고 와 사상 을 이해 할 수 있 을 것 입 니 다. 서로 다른 제품 을 공장 인 터 페 이 스 를 실현 하 는 서로 다른 공장 류 에 두 었 습 니 다. (우 리 는 모든 제품 에 공장 을 제공 하여 '생산' 을 제공 합 니 다)그러나 공장 방법 에 도 한계 가 있 습 니 다. 바로 제품 이 복잡 한 등급 구 조 를 가 질 때 입 니 다. 예 를 들 어 공장 에서 가전제품 을 생산 하 는 것 외 에 핸드폰 제품 도 생산 합 니 다. 그러면 가전제품 은 핸드폰 이 바로 두 가지 제품 가족 입 니 다. 이 두 가족 아래 에 수량 이 많은 제품 이 포함 되 어 있 고 모든 제품 은 여러 가지 모델 이 있 습 니 다. 이렇게 해서 하나의 복 원 된 제품 이 형성 되 었 습 니 다.잡다 한 제품 트 리 입 니 다. 공장 방법 으로 이 제품 의 가족 시스템 을 설계 하려 면 각 모델 의 제품 에 대응 하 는 공장 류 를 만들어 야 합 니 다. 수백 가지 심지어 수천 가지 제품 이 있 을 때 도 대응 하 는 수백 수천 개의 공장 류 가 있어 야 합 니 다. 이것 은 전설 적 인 폭발 이 발생 했 습 니 다. 앞으로 의 유지 에 있어 서 는 그야말로 재난 입 니 다.
그럼 더 좋 은 해결책 은 없 을 까? 헤헤, 뜸 들 여 내일 이 화 제 를 계속 하 자...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.