整体结构:
AcountService:
public interface AcountService {
public void addAccount();
public void updateAccount();
}
AcountServiceImpl:
public class AcountServiceImpl implements AcountService {
public void addAccount() {
System.out.println("保存账户");
}
public void updateAccount() {
System.out.println("更新账户");
}
}
BeanFactory:
package cn.itcast.utils;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
/**
* 多例 bean工厂 用一个new依次每次对象都不同
*/
public class BeanFactory {
private static Map<String, String> map = new HashMap<String, String>();
//ResourceBundle 加载配置文件
private static ResourceBundle bundle = ResourceBundle.getBundle("bean");
static {
Enumeration<String> keys = bundle.getKeys();
while (keys.hasMoreElements()){
String key = keys.nextElement(); //唯一标识
String value = bundle.getString(key); //根据Key获取value
map.put(key,value);
}
}
//传递一个唯一标识 参数
public static Object getBean(String id) throws Exception {
String classname = map.get(id);
Class clazz = Class.forName(classname);
return clazz.newInstance();
}
}
AccountServiceTest:
public class AcountServiceTest {
public static void main(String[] args) throws Exception {
AcountService acountService = (AcountService)
BeanFactory.getBean("ACCOUNTSERVICE");
// acountService.addAccount();
System.out.println(acountService1==acountService2);
}
}