3. 디자인 모델 의 공장 모델

더 읽 기
1. 단순 공장 모델
간단 한 공장 은 사실 디자인 모델 이 아니 라 오히려 프로 그래 밍 습관 같다.
 
나의 이해: 간단 한 공장 모델 은 단지 류 를 예화 하 는 방법 [new ()] 을 공장 류 에 두 었 을 뿐이다.
 
example: 간단 한 자동차 공장 을 정의 하고 고객 의 수요 에 따라 서로 다른 자동 차 를 생산 합 니 다.
 
자.
 
1. 자동차의 인 터 페 이 스 를 정의 하 는데 기본 적 인 행동 방법 이 있다. 즉, 차 를 운전 할 수 있다 는 것 이다.
public interface ICar {
	
	//car    
	 void driver();

}

2. 간단 한 공장 을 정의 합 니 다. 주의 하 세 요. 이것 이 중요 합 니 다.고객 의 수요 에 따라 서로 다른 자동 차 를 생산 하 다.
public class SimpleFactory {
	//       
	public ICar createVehicle(String type){
		ICar car = null;
		if("BMW".equals(type)){
			car = new BMWCar();
		}else if("QQ".equals(type)){
			car = new QQCar();
		}
		return car;
	}
}

3. BMW 차 정의
/**
 *      
 *
 */
public class BMWCar implements ICar {

	public void driver() {
		System.out.println("      。。。。");
	}
}

4. 찌 질 이 를 위 한 키 리 QQ 를 정의 합 니 다.
/**
 *      QQ 
 *
 */
public class QQCar implements ICar{

	public void driver() {
		System.out.println("QQ    。。。。");
	}
}

5. 준비 가 다 되 었 으 니 전문 점 을 하나 더 찾 아 고객 의 목 소 리 를 듣 고 고객 을 위해 서 비 스 를 제공 합 니 다.
/**
 *     
 *
 */
public class CarStore {
	private SimpleFactory factory;//      。
	public CarStore(SimpleFactory factory) {
		this.factory = factory;
	}
	//      
	public ICar orderVehicle(String type){
		return factory.createVehicle(type);
	}
}

6. 실행 해 보기
	public class Main {
	
		public static void main(String[] args) {
			//        
			SimpleFactory factory = new SimpleFactory();
			//      
			CarStore carStore = new CarStore(factory);
			//      
			ICar bmw = carStore.orderVehicle("BMW");
			bmw.driver();
			//      QQ 
			ICar qq = carStore.orderVehicle("QQ");
			qq.driver();
		}
		
	}

 이상 은 내 가 이해 하 는 가장 간단 한 공장 모델 이다.
모든 공장 모델 은 봉인 대상 의 창설 에 쓰 인 다.
2. 추상 공장 모델
    추상 적 인 공장 모델 은 공장 방법 모델 의 업그레이드 버 전 으로 그 는 관련 되 거나 서로 의존 하 는 대상 을 만 드 는 데 사용 된다.그 와 공장 방법 모델 의 차 이 는 바로 공장 방법 모델 이 제품 등급 구 조 를 겨냥 한 것 이다.추상 적 인 공장 모델 은 여러 제품 의 등급 구 조 를 대상 으로 한다.프로 그래 밍 에서 보통 하나의 제품 구 조 는 하나의 인터페이스 나 추상 류 로 나타난다. 즉, 공장 방법 모델 이 제공 하 는 모든 제품 은 같은 인터페이스 나 추상 류 에서 파생 되 고 추상 공장 모델 이 제공 하 는 제품 은 서로 다른 인터페이스 나 이미지 추출 류 에서 파생 된다.
 
예 를 들 어 봅 시다.
1. 추상 공장 방법
/**
 *	        
 */
public abstract class AbstractFactory {
	//  Vehicle   
	abstract ICar createVehicle(String type);
	//  airplane   
	abstract IAirplane createAirplane(String type);
}

 2. 차 의 인 터 페 이 스 를 정의 합 니 다.
/**
 *       
 */
public interface ICar {
	public void driver();
}
 3. BMW 한 대 정의
public class BMWCar implements ICar{
	@Override
	public void driver() {
		System.out.println("      。。。。");
	}
}
 4. QQ 정의
/**
 *   QQ 
 */
public class QQCar implements ICar{
	@Override
	public void driver() {
		System.out.println("QQ  。");
	}
}
 5. 비행기의 인 터 페 이 스 를 정의 합 니 다.
/**
 *     
 */
public interface IAirplane{
	public void fly();
}
 6. 공군 1 호 정의
/**
 *      
 */
public class AirForceOne implements IAirplane{
	@Override
	public void fly() {
		System.out.println("        。。。");
	}
}
 7. 정의
/**
 *	747 
 */
public class Airbus747 implements IAirplane{
	@Override
	public void fly() {
		System.out.println("747   。");
	}
}
 8. 저급 공장 을 정의 하고 추상 적 인 공장 에서 계승 하여 QQ 와 747 을 생산 할 수 있다.
/**
 *       
 */
public class LowLevelFactory extends AbstractFactory{
	//    QQ
	ICar createVehicle() {
		return new QQCar();
	}
	//    747
	IAirplane createAirplane() {
		return new Airbus747();
	}
}

 9. 고급 공장 을 정의 하고 추상 적 인 공장 에서 계승 하여 bm 와 빈 차 1 호 를 생산 할 수 있다.
/**
 *	     
 */
public class HighLevelFactory extends AbstractFactory{

	//    bm
	ICar createVehicle() {
		return new BMWCar();
	}
	//        
	IAirplane createAirplane() {
		return new AirForceOne();
	}
}

 10. 실행 하기
public class Main {

	public static void main(String[] args) {
		//    
		AbstractFactory hignFactory = new HighLevelFactory();
		ICar bmw  = hignFactory.createVehicle();
		bmw.driver();
		IAirplane airplane747 = hignFactory.createAirplane();
		airplane747.fly();
		//    
		AbstractFactory lowFactory = new LowLevelFactory();
		ICar qq  = lowFactory.createVehicle();
		qq.driver();
		IAirplane airone = lowFactory.createAirplane();
		airone.fly();
	}
}

 나의 이해: 추상 적 인 공장 모델 은 추상 적 인 공장 류 가 있 고 계승 하 는 서브 공장 류 가 많아 야 한다.모든 종류의 제품, 예 를 들 어 차, 비행 기 는 모두 공공 인터페이스 가 있다.서로 다른 자 공장 은 서로 다른 제품 을 조합 하여 생산 할 수 있다.
복귀 탐색
 
   

좋은 웹페이지 즐겨찾기