簡單工廠模式的簡化:抽象產品和工廠類合併

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

package com.anhu.caiyu;

public abstract class Product {
    public abstract void show();
    public static   Product createProduct(String type){
        if("product1".equals(type)){
            return new ConcreteProduct1();
        }else if("product2".equals(type)){
            return new ConcreteProduct2();
        }else{
            return null;
        }
    }
}


package com.anhu.caiyu;

public class Driver {
public static void main(String[] args){

// 改進工廠後
Product product=ConcreteProduct1.createProduct(“product1”);
product.show();
product=ConcreteProduct1.createProduct(“product2”);
product.show();
product=ConcreteProduct1.createProduct(“product3”);
if(product!=null){
product.show();
}else{
System.out.println(“不生產該產品”);
}
}
}

package com.anhu.caiyu;

public class ConcreteProduct1 extends Product{
public void show(){
System.out.println(“產品1”);
}

}
package com.anhu.caiyu;

public class ConcreteProduct2 extends Product{
public void show(){
System.out.println(“產品2”);
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章