設計模式筆記---工廠方法模式

形成南北發表於2020-12-06

1、概念

定義一個用於建立物件的介面,讓子類決定例項化哪一個類。工廠方法使一個類的例項化延遲到其子類。

 

2、說明

抽象產品類

public abstract class Product {
    public void method1(){

    }

    public abstract void method2();
}

具體產品類

public class ConcreteProduct1 extends Product {
    @Override
    public void method2() {

    }
}

public class ConcreteProduct2 extends Product {
    @Override
    public void method2() {

    }
}

抽象工廠類

public class ConcreteCreator extends Creator{
    public <T extends Product>T createProduct(Class<T> c){
        Product product = null;
        try{
            product = (Product)Class.forName(c.getName()).newInstance();
        }catch (Exception e){

        }
        return (T)product;
    }
}

具體工廠類

public abstract class Creator {
    public abstract <T extends Product>T createProduct(Class<T> c);
}

場景類

public class Client {
    public static void main(String []args){
        Creator creator = new ConcreteCreator();
        Product product = creator.createProduct(ConcreteProduct1.class);
    }
}

 

3、特點

優點:封裝性好;擴充套件性良好

相關文章