Java设计模式之-简单工厂模式
工厂模式把对象的创建和使用分离,这样做的好处是分离具体对象的创建和使用,达到了尽量少的代码修改。
?
简单工厂模式又被称之为静态工厂方法模式,它是通过一个静态方法进行对象的实例化。
?
?
下面是一个数据库的操作工厂类,里面有三种数据库的操作类,如果直接使用对象:
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;??? }}