一个小例子认识工厂模式

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。

下面通过一个小例子来解释工厂模式的工作流程,本例在Java工程下创建,本例子的功能是:应用ServiceApp中如何调用不同Dao类中的方法(所有类均同包)

1.首先创建Dao.java接口作为基本dao的规范

package cn.smile.factory;

public interface Dao {
	public void fn();
}
2.创建不同的dao类UserMysqlDao.java和UserOracleDao.java,均实现dao接口

UserMysqlDao.java

package cn.smile.factory;

public class UserMysqlDao implements Dao{
	public void fn(){
		System.out.println("mysql:fn......");
	}
}

UserOracleDao.java

package cn.smile.factory;

public class UserOracleDao implements Dao{
	public void fn(){
		System.out.println("oracle:fn......");
	}
}

3.创建工厂类DAOFactory.java,返回一个需要的dao对象

package cn.smile.factory;

public class DAOFactory {
	public static Dao getDao(){
		return new UserMysqlDao();
		//使用Mysql数据库时
//		return new UserOracleDao();
		//使用Oracle数据库时
	}
}

4.创建应用ServiceApp.java,调用工厂提供的对象的方法即可

package cn.smile.factory;

public class ServiceApp {
	public void test(){
		DAOFactory.getDao().fn();
	}
	
	public static void main(String[] args) {
		new ServiceApp().test();
	}
}


工厂模式:
将不同的资源类全部实现一个接口
设置一个工厂类
在工厂类中返回一个所需要的资源类
在应用中直接调用工厂提供的的方法即可
此种方式的优点在于更换资源类的实现时,只需要更改工厂类即可,而不需要修改应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值