废话不多说,直接上代码。
public class BeanFactory { private static ResourceBundle rb; static{ // 加载配置文件 rb = ResourceBundle.getBundle("applicationContext"); String userService = rb.getString("userService"); System.out.println("userService = " + userService); } public static UserService getUserServiceImpl(){ UserService userService =null; try { // 类的全类名 需要读取配置文件 Class<?> clazz = Class.forName(rb.getString("userService")); userService = (UserService) clazz.newInstance(); } catch (Exception e) { e.printStackTrace(); } return userService; }
这样我们的代码耦合度就没有那么高了,就一定程度上打到了解耦,在项目中及时我们修改了对象,只需在修改factory下的代码就可了,但是这还不是最终的工厂模式,敬请期待工厂模式优化升级!