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

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

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

 

简单工厂模式类图

简单工厂模式--不是GOF的23个的模式_第1张图片

 

产品分很多类型。

制作一个产品。


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

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

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

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

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


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

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

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

 

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

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

 

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

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

 

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

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

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

 

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

 

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

 

 

 

如有好的建议,可留言或发至笔者邮箱:[email protected]

 

你可能感兴趣的:(设计模式,编码,java,工厂模式)