Java 설계 모드 중 하나(단순 플랜트 모드)

1. 간단한 공장 모델은 무엇입니까?
단순 공장 모델은 유형의 창설형 모델에 속하고 정적 공장 방법 모델이라고도 부른다.하나의 클래스를 전문적으로 정의함으로써 다른 클래스의 실례를 만드는 것을 책임진다. 생성된 실례는 일반적으로 공통된 부류를 가지고 있다.
2. 모델에 포함된 역할과 직책은?
1. 공장(Creator) 역할은 단순 공장 모델의 핵심으로 모든 실례를 만드는 내부 논리를 실현한다.공장류는 외부에서 직접 호출되어 필요한 제품 대상을 만들 수 있다.2. 추상(Product) 역할 단순 공장 모델이 만든 모든 대상의 부류는 모든 실례가 공유하는 공공 인터페이스를 묘사한다.3. 특정 제품(Concrete Product) 역할 단순 플랜트 모드에서 작성된 특정 인스턴스 객체
3. 단순 공장 모델의 장단점은?
이 모델에서 공장류는 전체 모델의 관건이다.이것은 외부가 정한 정보에 따라 어떤 구체적인 유형을 만들어야 하는지를 결정하는 데 필요한 판단 논리를 포함한다.사용자는 이 대상이 어떻게 만들어지고 어떻게 조직되는지 알 필요 없이 공장 클래스에 따라 필요한 실례를 직접 만들 수 있다.전체 소프트웨어 체계 구조의 최적화에 유리하다.
단순한 공장 모델의 단점도 공장 유형에 나타난다. 공장 유형은 모든 실례의 창설 논리를 집중했기 때문에'고내집'분야가 잘 되지 않았다.또한 시스템의 구체적인 제품류가 계속 증가할 때 공장류도 상응하는 수정을 요구할 수 있어 확장성이 좋지 않다.
코드 구현
추상(Product) 인터페이스 역할:Fruity
package com.qianyan.product;

public interface Fruit {

	/**
	 *  
	 */
	public void get();
}

특정 제품(Concrete Product) 역할
Apple:
package com.qianyan.bean;

import com.qianyan.product.Fruit;

public class Apple implements Fruit{

	/**
	 *  
	 */
	public void get(){
		System.out.println(" !");
	}
}
Banana:
package com.qianyan.bean;

import com.qianyan.product.Fruit;

public class Banana implements Fruit{

	/**
	 *  
	 */
	public void get(){
		System.out.println(" !");
	}
}

공장류FruitFactory.java
package com.qianyan.factory;

import com.qianyan.bean.Apple;
import com.qianyan.bean.Banana;
import com.qianyan.product.Fruit;

public class FruitFactory {
	
	public static Fruit getFruit(String type) throws Exception{
		if(type.equalsIgnoreCase("apple"))
			return Apple.class.newInstance();
		else if(type.equalsIgnoreCase("banana"))
			return Banana.class.newInstance();
		else{
			System.out.println(" !");
			return null;
		}
	}
}

고객:
package com.qianyan.user;

import com.qianyan.factory.FruitFactory;
import com.qianyan.product.Fruit;

public class Customer {

	public static void main(String[] args) throws Exception {
		Fruit apple = FruitFactory.getFruit("Apple");
		Fruit banana = FruitFactory.getFruit("banana");
		
		apple.get();
		banana.get();
	}
}

테스트 결과:
 !
 !

좋은 웹페이지 즐겨찾기