JAVA 设计模式- 简单工厂和工厂方法小思考

JAVA 设计模式- 简单工厂和工厂方法小思考,第1张

概述:

简单工厂模式:一个工厂可以创建多个产品(通过if else 来进行产品路由)

工厂方法模式:一个具体工厂只创建一个具体产品(通过多态机制进行产品路由不用修改之前工厂的内容,但是每增加一个产品都要新增工厂。

理解:

1、在工厂方法模式中进行新产品添加时需要同时增加新工厂和新产品。工厂和产品一一对应那么为什么不直接new产品?

逻辑上产品和工厂的所做的事情是不一样的,产品是一个结果,而工厂是通过逻辑生产产品,所以即便是产品和工厂一一对应,但是工厂并不能省略。因为生产产品之前需要很多 *** 作,而这些 *** 作需要通过工厂去实现。

2、简单工厂和工厂方法优缺点对比

简单工厂

优点:实现简单更容易理解,实际的性能开销更小。

缺点:1、所有产品的生产都在一个工厂内,多产品的生产耦合在一起随着后期产品变多工厂变的杂乱。2、后期新增产品需要再次在原有工厂中添加if else

工厂方法:

优点:1、不同产品生产逻辑放在不同的子工厂中,生产逻辑相互独立耦合性低。2、后期添加新产品只需要新增而不需要修改之前的内容

缺点:理解难度相比增大,实际性能开销更小。

项目中应用:

1、log4j2其实就是一个大工厂,通过不同的类名返回不同的logger进行日志的打印,包括我们的spring容器其实也可以理解为一个超级工厂对我们的类进行生产

2、spring项目中对象注入一个map的方式就可以理解为一个简单工厂,spring把符合这个类型的对象放入这个Map,引用名字作为Map的Key实现了一个简单工厂模式

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/889931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存