工厂模式

1、工厂模式的定义
定义一个创建对象的接口(工厂接口),由其子类(工厂类)决定初始化哪个类(产品类)
换句话说,根据要求生成指定对象
2、工厂模式的实现要点
定义一个工厂类的接口,工厂子类实现该接口,并根据入参决定实例化哪个产品类
可以借助反射或条件判断来实现这种决定
3、应用场景
减少代码中类的耦合
系统中可能会扩展出多种同类型的类,比如不同数据库有不同的连接驱动

4、实现举例
抽象产品类-引擎

public abstract class EngineProduct {
    public abstract void provideMotivation();
}

具体产品类-BMW引擎

public class BMWEngineProduct extends EngineProduct {

    @Override
    public void provideMotivation(){
        System.out.println("provide motivation for BMW car!");
    }
}

具体产品类-奔驰引擎

public class BenzEngineProduct extends EngineProduct {

    @Override
    public void provideMotivation(){
        System.out.println("provide motivation for Benz car!");
    }
}

抽象工厂类

public abstract class AbstractFactory {
    abstract <T extends EngineProduct> T getInstance(Class<T> cls);
}

具体工厂类(通过反射实现)

public class CommonFactory extends AbstractFactory {
    public <T extends EngineProduct> T getInstance(Class<T> cls) {
        EngineProduct product = null;
        try {
            product = cls.newInstance();
        } catch (Exception e) {
            System.out.println("produce product failed!");
        }
        return (T)product;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容