디자인 모델 --- 간단 한 공장 모델 (학습 노트)

3473 단어 단순 공장 모드
간단 한 공장 은 사실상 디자인 모델 이 아니 라 프로 그래 밍 습관 과 비슷 합 니 다!
먼저 코드 를 보고 코드 에서 이 프로 그래 밍 습관 을 이해 하 세 요.
피 자 를 만 드 는 예 를 들 어:
피자 종류 코드:
상세 한 피자 치즈 피자:
상세 한 피자 클 램 피자:
public interface Pizza {
    void prepare();
    void box();
    void bake();
    void cut();

}
간단 한 공장 피로:
피자 주문 류 피자 가게:
public class CheesePizza implements Pizza {
    private String tag="CheesePizza:";
    @Override
    public void prepare() {
        System.out.println(tag+"pripare()");
    }

    @Override
    public void box() {
        System.out.println(tag+"box()");

    }

    @Override
    public void bake() {
        System.out.println(tag+"bake()");

    }

    @Override
    public void cut() {
        System.out.println(tag+"cut()");

    }



}
테스트 코드:
public class ClamPizza implements Pizza {
    private String tag="ClamPizza:";
    @Override
    public void prepare() {
        System.out.println(tag+"pripare()");
    }

    @Override
    public void box() {
        System.out.println(tag+"box()");

    }

    @Override
    public void bake() {
        System.out.println(tag+"bake()");

    }

    @Override
    public void cut() {
        System.out.println(tag+"cut()");

    }

}
인쇄 결과:
4. 567913. 코드 에서 알 수 있 듯 이 대상 을 만 들 기 전에 사실은 대상 의 공동 조작 방법 을 추상 화하 고 앞으로 대상 의 확장 을 위해 준비 할 수 있다. 이 인 터 페 이 스 는 인터페이스 류 나 추상 류 이 고 상세 한 서브 클래스 에서 실현 되 거나 계승 할 수 있다.그러나 간단 한 공장 안의 방법 에 대해 서 는 어떤 상세 한 대상 을 만 드 는 지 만 확인한다.
비교적 통용 되 는 공장 모델 프레임 워 크 코드 를 보십시오.
추상 적 인 제품 종류:
상세 제품
public class SimplePizzaFactory {

    public Pizza createPizza(String tpye){
        Pizza pizza = null;
        if (tpye.equals("cheese")){
        pizza=new CheesePizza();
        }else if (tpye.equals("clam")){
         pizza=new ClamPizza();
        }
        return pizza;
    }
}
추상 공장 클래스:
상세 공장 종류:
public  class PizzaStore {

    SimplePizzaFactory simplePizzaFactory;

    protected PizzaStore(SimplePizzaFactory simplePizzaFactory) {
        this.simplePizzaFactory = simplePizzaFactory;
    }

    protected final Pizza orderPizza(String type){
//        Pizza pizza=pizzafactory.createP(type);
        Pizza pizza=simplePizzaFactory.createPizza(type);
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();


        return pizza;

    }


}
상세 코드 테스트 클래스:
  public static void main(String[] args){

    PizzaStore chijiaPizzaStore=new PizzaStore(new SimplePizzaFactory());
     chijiaPizzaStore.orderPizza("cheese");
     chijiaPizzaStore.orderPizza("clam");
    }
하나의 모듈 이 하나의 공장 류 만 필요 하 다 고 가정 하면 이 를 생산 할 필요 가 없다. 정태 적 인 방법 을 사용 하면 된다. 상기 추상 적 인 공장 류 를 상세 한 공장 류 로 직접 교체 하고 정태 적 인 방법 을 사용 하면 간단 한 공장 모델 이나 정태 적 인 공장 모델 로 바 꿀 수 있다.
잘 쓰 지 못 했 습 니 다. 의견 을 많이 제시 하고 함께 공부 하 기 를 바 랍 니 다!감사합니다.

좋은 웹페이지 즐겨찾기