简单工厂模式--不是GOF的23个的模式

9 篇文章 0 订阅
2 篇文章 0 订阅

简单工厂模式--不是GOF的23个的模式

前言:来自《Head First 设计模式》,不涉及任何商务往来,仅为学习使用,作为参照笔记。简单工厂模式其实不是设计模式,反而是比较像是一种编程习惯。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

 

简单工厂模式类图

 

产品分很多类型。

制作一个产品。


一、  工厂模式有了简单工厂模式,工厂方法模式和抽象工厂模式。

解决某些松耦合的OO设计。

除了使用new操作符之外,还有更多制造对象的方法。

目的为了避免公开实例化。

经验:初始化经常造成“耦合”问题。


二、  思考:关于new的问题。每次使用new时,就是针对实现编程,如何避免这种针对实现编程?

前提明白,代码绑着具体类会导致代码更脆弱,更缺乏弹性。

模式目的:(1)要使用接口让代码具有弹性。(2)但是还是的建立具体类的实例。

 

Java只提供一个new关键词创建对象。

对修改关闭,对扩展开放。

 

三、  把变化的代码搬到另一个对象中,我们称这个新对象为“工厂”。注意是对象。工厂(factory)处理创建对象的细节。

优势:工厂类可以有许多客户。

 

四、  问题:把工厂定义成一个静态方法的必要?

简单工厂模式是属于创建型模式,又叫做静态工厂方法。利用静态方法定义一个简单的工厂,常备称为静态工厂。为何使用静态方法?因为不需要使用创建对象的方法来实例化对象。

但有缺点:不能通过继承来改变创建方法的行为。

 

正如前言:简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。有些编程人员习惯误认为是“工厂模式”。

 

经验补充:在设计模式中,所谓的“实现一个接口”并“不一定”表示“写一个类,并利用implement关键词来实现某个Java接口”。“实现一个接口”泛指“实现某个超类型(可以是类或接口)的某个方法。”

 

 

 

如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值