工厂方法模式(Factory Method)(常用)

  • -适用场景:
    • 客户只知道创建产品的工厂名,而不知道具体的产品名。如 TCL 电视工厂、海信电视工厂等。
    • 创建对象的任务由多个具体子工厂中的某一个完成,而抽象工厂只提供创建产品的接口。
    • 客户不关心创建产品的细节,只关心产品的品牌。

对原来代码的改动少了,通过创建新的工厂来实现

Spring 框架使用工厂模式来实现 Spring 容器的 BeanFactory 和 ApplicationContext 接口。Spring 容器基于工厂模式为 Spring 应用程序创建 bean,并管理着每一个 bean 的生命周期。BeanFactory 和 ApplicationContext 是工厂接口,并且在 Spring 中存在有很多实现类。getBean() 方法是相对应的 bean 的工厂方法。

Car.Interface, Aodi.class, Byd.class与简单工厂模式中的一样。

  • CarFactory.Interface
public interface CarFactory {
    Car createCar();
}
  • AodiFactory.class
public class AodiFactory implements CarFactory {

    @Override
    public Car createCar() {
        
        return new Aodi();
    }

}
  • BydFactory.class
public class BydFactory implements CarFactory {

    @Override
    public Car createCar() {
        
        return new Byd();
    }

}
  • 调用
public class Client {
        //注意这里是上转型对象
    public static void main(String[] args) {
        Car c1 = new AodiFactory().createCar();
        Car c2 = new BydFactory().createCar();
        
        c1.run();
        c2.run();

    }

}

往后添加新车,先添加新的工厂,再添加新车,实现对源代码的改动小,但是类会变多。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容