디자인 모델 GOF 23 - 추상 공장 모델
5531 단어 디자인 모드 GOF 23
패턴 적 직책
추상 적 인 공장 은 공장 모델 의 하나 라 고 할 수 있다. 논리 와 실현 이 상대 적 으로 복잡 하기 때문에 디자인 모델 에서 많은 설명 은 모두 따로 설명 한 것 이다.추상 적 인 공장 도 대상 창설 과 대상 사용 의 분 리 를 실현 하기 위해 서다.공장 모델 은 이미 이 수 요 를 실 현 했 지만 아직 철저 하지 못 하 다.예 를 들 어 만 든 대상 이 하나의 대상 이 아니 라 일련의 대상 일 때 일반적인 공장 모델 은 어 쩔 수 없다.이 럴 때 는 추상 적 인 공장 모델 이 필요 하 다.한 마디 로 추상 적 인 공장 모델 의 직책 은 제품 족 을 만 들 고 제품 족 을 사용 하 는 분리 이다.공장 모델 의 특수 한 상황 이다.
모델 의 실현
공장 대상 의 추상 류 를 만 들 고 제품 족의 기본 정보 와 방법 을 정의 하 며 제품 족의 생 성 을 실현 류 의 해당 방법 에 밀봉 한다.대상 의 생 성과 관 리 는 상응하는 추상 적 인 인 터 페 이 스 를 사용 하여 실현 할 수 있다.추상 적 인 공장 은 제품 을 늘 릴 수 는 없 지만 제품 족 을 늘 릴 수 있다.
// ,
public interface Engine {
void start();
}
//
public class LuxuryEngine implements Engine{
public void start() {
//
}
}
//
public class LowEngine implements Engine{
public void start() {
//
}
}
public interface Seat {
void seat();
}
//
public class LuxurySeat implements Seat{
public void seat() {
//
}
}
//
public class LowSeat implements Seat{
public void seat() {
//
}
}
// ,
public class LuxuryCar implements CarFactory{
//
public Engine createEngine() {
Engine e = new LuxuryEngine();
return e;
}
//
public Seat createSeat() {
Seat s = new LuxurySeat();
return s;
}
}
// ,
public class LuxuryCar implements CarFactory{
//
public Engine createEngine() {
Engine e = new LowEngine();
return e;
}
//
public Seat createSeat() {
Seat s = new LowSeat();
return s;
}
}
저급 판 과 사치 판 은 두 가지 서로 다른 제품 그룹 이 라 고 할 수 있 습 니 다. 공장 을 만 드 는 추상 을 통 해 서로 다른 제품 팀 의 작성 이 쉬 워 집 니 다.유사 한 제품 의 창설 과 교 체 는 추상 적 인 공장 방식 으로 할 수 있다. 예 를 들 어 QQ 공간 에서 피 부 를 바 꾸 면 추상 적 인 공장 모델 을 통 해 쉽게 할 수 있다.
공장 모델 의 총화
간단 한 공장 모델 은 창설 대상 에 적합 하지만 확장 하면 개폐 원칙 에 부합 되 지 않 는 다.공장 모델 은 개폐 원칙 에 부합 되 지만 너무 많은 종 류 를 만 들 수 있다.추상 적 인 공장 모델 은 제품 족 에 대한 창설 과 분 리 를 통제 하 는 특수 한 상황 의 공장 모델 이다.공장 모델 은 실제 응용 에서 일반적으로 단독으로 나타 나 지 않 고 종종 다른 방식 과 결합 된다.공장 모드 의 일부 응용 장면: 1. JDK 에서 Calendar 의 getInstance 방법 2. JDBC 에서 Connection 대상 을 가 져 옵 니 다.3. Hibernate 에서 Session Factory 에서 Session 을 만 듭 니 다.4. Spring 에서 IOC 용기 생 성 관리 bean 대상.5. XML 분석 시 DocumentBuliderFactory 에서 분석 대상 을 만 듭 니 다.6. 반사 에서 Class 대상 의 new Instance 는 사실 공장 모델 의 응용 이 비교적 광범 위 하 다. 보통 XXX Factory 를 만들어 야 하 는 것 은 모두 공장 모델 에 속한다.