首页 > 代码库 > 设计模式之二 工厂模式

设计模式之二 工厂模式

工厂模式的定义:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法决定一个类的实例化延迟到其子类。

类图如下:

image

通用的代码如下:

//抽象产品类public abstract class Product {    // 产品通用的方法.....    public void method1(){            }        //抽象方法    public abstract void method2();}//--------------------------------------产品类------------------------------------------------//具体类 1public class ConcreteProduct1 extends Product {        @Override    public void method2() {        // 处理具体产品1的方法    }}//具体产品类2public class ConcreteProduct2 extends Product {    @Override    public void method2() {        //具体产品2的方法.....    }}//-----------------------------------创建类------------------------------------------//抽象的创建类public abstract class Creator {    //通过反射创建具体的产品类...    public abstract <T extends Product> T  createProduct(Class<T> c);}//具体的抽象类public class ConcreteCreator extends Creator {    @Override    public <T extends Product> T createProduct(Class<T> c) {        //产品类....        Product product = null;                if(product == null){            try {                product = (Product) Class.forName(c.getName()).newInstance();            }            catch (Exception  e) {                e.printStackTrace();            }        }                //返回.....        return (T)product;            }}//---------------------------------------------------------Client 类--------------------------------------------------------------------------public class Client {    /**      * @Title: main      * @Description: 工厂类的Client     * @param @param args    设定文件      * @return void    返回类型      * @throws      */    public static void main(String[] args) {        //工厂创建类        Creator  creator = new ConcreteCreator();        //生成具体产品类1        Product  product = creator.createProduct(ConcreteProduct1.class);                //继续业务处理    }}

 

 

简单工厂类

把类图去掉抽象类 creator类,将ConcreteCreator 方法修改为静态即可。

设计模式之二 工厂模式