Java工厂模式

xiaoxiao2025-05-27  29

定义:工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

其实就是抽取类相同的方法。让子类来实现。下面定义一个工具抽取类。

技术分析:线程安全 synchronized       Map集合        反射    单例

      下面代码演示:     

import java.util.HashMap; import java.util.Map; import java.util.ResourceBundle; public class BeansUtils { private static Map<String,Object> map = new HashMap<>(); //synchronized实现了线程安全 public static synchronized Object getBeans(String beanName) { //先从集合是获取对象 Object object = map.get(beanName); //如果没有就获取配置文件 if (object == null) { //读取配置文件、创建对象 ResourceBundle rb = ResourceBundle.getBundle("beans"); String beanPath = rb.getString(beanName);//com.sswblog.service.Impl.UserServiceImpl try { //反射拿到类字节码创建对象 object = Class.forName(beanPath).getDeclaredConstructor().newInstance(); //将对象存到map集合、再次调用就不会新创建对象。实现的单例 map.put(beanName,object); } catch (Exception e) { e.printStackTrace(); } } return object; } public static void main(String[] args) { //UserDao为接口 UserDao userDao = (UserDao) BeansUtils.getBeans("userDao"); UserDao userDao1 = (UserDao) BeansUtils.getBeans("userDao"); System.out.println(userDao); System.out.println(userDao1); } }

         

 

转载请注明原文地址: https://www.6miu.com/read-5030782.html

最新回复(0)