工厂模式解耦-基本版

1、创建一个 bean.properties 配置文件(key-value)

AccountService=ouhe.AccountServiceImpl
AccountDao=ouhe.AccountDaoImpl

2、创建工厂类

package ouhe;

import java.util.ResourceBundle;

//创建Bean对象的工厂
public class BeanFactory {
	
	/*
	 * 只能用于读取properties文件
	 * 只能读取,不能写入
	 * 只能读取类路径下的文件
	 * */
	private static ResourceBundle rb = ResourceBundle.getBundle("bean");
	
	//用于创建Bean对象的方法
	public static Object getBean(String beanName) throws ClassNotFoundException {
		String s = rb.getString(beanName);
		Object clazz = null;
		try {
			clazz = Class.forName(s).newInstance();
		} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
			e.printStackTrace();
		}
		return clazz;
	}
}

3、创建表现层,业务逻辑层、持久层的类

package ouhe;

//表现层
public class Client {

	public static void main(String[] args) throws ClassNotFoundException {
		//IAccountService as = new AccountServiceImpl();
		IAccountService as = (IAccountService) BeanFactory.getBean("AccountService");
		as.save();

	}

}
package ouhe;

//业务层实现类
public class AccountServiceImpl implements IAccountService{

	@Override
	public void save() throws ClassNotFoundException {
		//IAccountDao ad = new AccountDaoImpl();
		IAccountDao ad = (IAccountDao) BeanFactory.getBean("AccountDao");
		ad.save();
		
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值