⼯⼚设计模式

简单⼯⼚的设计

package com.baizhiedu.basic;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class BeanFactory {
 	private static Properties env= new Properties();
 	static{
 		try {
		 //第⼀步 获得IO输⼊流
		 InputStream inputStream = BeanFactory.class.getResourceAsStream("/applicationContext.properties");
	
		//第⼆步 ⽂件内容 封装Properties集合中 key = userService  value =com.baizhixx.UserServiceImpl
		 env.load(inputStream);
		 inputStream.close();
		 } catch (IOException e) {
		 e.printStackTrace();
		 }
	 }
	 /* 对象的创建⽅式:
		 1. 直接调⽤构造⽅法 创建对象 UserService userService = newUserServiceImpl();
		 2. 通过反射的形式 创建对象   解耦合
		 Class clazz =Class.forName("com.baizhiedu.basic.UserServiceImpl");
		 UserServiceuserService =(UserService)clazz.newInstance();
	*/

	public static UserService getUserService() {
 		UserService userService =null;
		 try {
		 //com.baizhiedu.basic.UserServiceImpl
		 Class clazz =Class.forName(env.getProperty("userService"));
		 userService =(UserService) clazz.newInstance();
		 } catch
		(ClassNotFoundException e) {
		 e.printStackTrace();
		 } catch
		(InstantiationException e) {
		 e.printStackTrace();
		 } catch
		(IllegalAccessException e) {
		 e.printStackTrace();
		 }
		 return userService;
 	}
	 public static UserDAOgetUserDAO(){
		UserDAO userDAO = null;
	 	try {
			 Class clazz =Class.forName(env.getProperty("userDAO"));
			 userDAO = (UserDAO)clazz.newInstance();
		 } catch
		(ClassNotFoundException e) {
		 e.printStackTrace();
		 } catch
		(InstantiationException e) {
		 e.printStackTrace();
		 } catch
		(IllegalAccessException e) {
		 e.printStackTrace();
		 }
		 return userDAO;
		 }
   }

## 通用工厂设计
	
	public class BeanFactory{
 
		 public static Object getBean(String key){
			 Object ret = null;
			 try {
			 Class clazz = Class.forName(env.getProperty(key));
			ret =clazz.newInstance();
			 } catch (Exception e) {
			 e.printStackTrace();
			 }
			 return ret;
		 }
 }

/*
		1. 定义类型 (类)
		2. 通过配置⽂件的配置告知⼯⼚
		(applicationContext.properties)
		 key = value
		3. 通过⼯⼚获得类的对象
		 Object ret =
		BeanFactory.getBean("key")

*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值