工厂模式把对象的创建和使用分离,这样做的好处是分离具体对象的创建和使用,达到了尽量少的代码修改。
简单工厂模式又被称之为静态工厂方法模式,它是通过一个静态方法进行对象的实例化。
下面是一个数据库的操作工厂类,里面有三种数据库的操作类,如果直接使用对象:
MySqlOperate mySqlOperate = new MySQLOperate();
当数据库改成Oracle时,客户端的代码需要修改,而如果使用工厂模式:
DataOperate dataOperate = DataOperateFactory.getInstance();
这样做客户端代码就不需要关心是Mysql,还是Oracle了,修改Oracle时,只要修改工厂类的方法就可以了,当然下面的dataType可以写到配置文件里,这样,只要修改配置文件就可以轻松切换到Oracle了。
public
class
DataOperateFactory {
public
static
final
int
ORACLE = 0; //定义三个表示数据库类型的常量
public
static
final
int
MYSQL = 1;
public
static
final
int
SQLSERVER = 2;
private
static
DataOperate db;
private
static
int
dataType = MYSQL;
/**
* 根据数据库类型(dataType)取得一个数据库操作类的实例,
* 这里对DataOperate使用了单例模式,因为OracelDataOperate等都是无状态的工具类,
* 所以整个系统只保留一个实例就行了。
*
* @return
返回的是接口,客户端不必关心具体是用那个实现类
*/
public
static
DataOperate getInstance() {
if
(db == null
) {
if
(dataType == ORACLE) //根据dateType返回相应的实现类
return
new
OracelDataOperate();
if
(dataType == MYSQL)
return
new
MysqlDataOperate();
if
(dataType == SQLSERVER)
return
new
SqlserverDataOperate();
}
return
db;
}
}
由上例可以看到,客户端代码不用改变,这个很重要,比如说你给第三方提供jar包,客户端调用代码刚开始是采用Mysql的,后来改成Oracle,显然客户端代码需要改动
又上例我们也可以看到,尽管我们的简单工厂模式解决了,客户端代码不用修改的目的,但是当增加新的产品时,工厂类必须要修改,这样扩展性就有了限制了。
分享到:
相关推荐
java设计模式--工厂模式 HeadFirst 书中的源代码
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
设计模式--工厂模式java例子
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
JAVA设计模式例程-工厂模式-的例程,看完以后基本上能对JAVA上实现简单工厂能有所了解,简单工厂还是比较容易滴,而且也是较为常用的一种设计模式。
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是简单工长模式及应用场景和应用场景的代码事例。
JAVA设计模式例程-工厂模式,一个实例,正在学习设计模式的朋友可看一下,看完了后应该对工厂模式有所了解了。
JAVA-设计模式-创建型模式-工厂模式
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是抽象工厂模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
Java设计模式 - 简单工厂 & 工厂方法(构建工厂)源码:FactoryModel - 详情:https://blog.csdn.net/Dream_Weave/article/details/83989879
java常用设计模式-抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它通过定义一个创建对象的接口来创建对象,但将具体实现的决定留给子类来决定。在抽象工厂模式中,接口是负责创建...
本课程适合所有需要弥补JAVA设计模式的同学,课件内容制作精细,由浅入深,适合入门或进行知识回顾。 【完整课程列表】 基于java程序语言的设计java模式课程 01-设计模式概述(共36页).pptx 基于java程序语言的...
Java设计模式,简单工厂的Demo,具体的思想与实现有很多讲得很好的老师,我是看厉风行老师的视频学的,讲得不错,简单易懂
简单工厂模式示例 有注释 需要的朋友可以下载研究 很简单很基础的一个设计模式
JAVA设计模式例程-策略模式,在项目中除工厂模式外就数策略模式用得最多了。源程序,可以研究下。不过没有反射,策略模式结合反射的话,基本上就是一个插件架构。可扩展性超强。
NULL 博文链接:https://jonathan-chen.iteye.com/blog/2194091
java设计模式之抽象工厂模式,实例----手机工厂,一个简单的例子,有助于理解抽象工厂模式。
Java常用设计模式-工厂模式 工厂模式(Factory Pattern)是一种常用的设计模式,它通过一个工厂类来实现对象的创建,而无需直接暴露对象的创建逻辑给客户端。这种模式可以使客户端代码与具体的产品类解耦,提高代码...
java 设计模式 单例模式 工厂模式 命令模式 模式解析 各种模式的最全面的解析 最朴实的话语
NULL 博文链接:https://jonathan-chen.iteye.com/blog/2194074