欢迎光临散文网 会员登陆 & 注册

设计模式:工厂方法模式

2021-03-25 13:36 作者:做架构师不做框架师  | 我要投稿

什么是工厂方法模式?

工厂方法模式(英语:Factory Method Pattern)的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行”。

一句话归纳

只对结果负责,封装过程对象。



代码示例

我在Car类中定义了车的一些基本属性和行为,在其子类BMW类和Benz类里写各自的属性和行为的区别;定义了一个关于Car类的工厂接口,在其实现类里的方法返回不同的车型,以后我再卖一个新车系列时候,只需要创建一个Car的子类和相对应的工厂类即可。

适用性

以下场景我建议你考虑使用:

  • 面向接口编程;

  • 创建对象需要大量重复的代码或默认值;

  • 创建对象的生命周期必须集中管理,比如Spring的BeanFactory;

  • 创建对象可能是在一个池子里,不是每次都创建新的,比如线程池、连接池;

  • 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节;

  • 一个类通过其子类来指定创建哪个对象。

局限性

以下场景我建议你谨慎使用:

  • 重构现有的类时会破坏现有的代码,毕竟以前是用构造器,现在用工厂方法;

  • 简单对象创建不建议使用,避免把简单问题复杂化;

  • 工厂方法所实例化的类具有私有的构造方法,所以这些类就不能扩展了;

  • 确实扩展了工厂方法所实例化的类,子类必须具有所有工厂方法的一套实现。

写在最后

最后,好兄弟,记得点赞,关注,谢谢。


设计模式:工厂方法模式的评论 (共 条)

分享到微博请遵守国家法律