设计模式二之 简单工厂模式

本文深入解析简单工厂模式的实现原理,展示如何通过工厂类、业务类及具体实现类构建模式,利用Spring框架进行对象创建与依赖注入,实现灵活的对象生成机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单工厂模式=工厂类+业务类+具体实现类
自我理解:通过类的名字获取工厂中的对象,主要是工厂帮助生成了所需的对象,

示例代码:

工厂类

@Service
@RequiredArgsConstructor(onConstructor = @_(@Autowired))
public class Factory {
//构造方法注入
    private final ApplicationContext applicationContext;

/**Spring创建对象时,对象的别名是类名首字母小写 .getSimpleName**/
    public Object getBean(String beanId){
        if (applicationContext.containsBean(beanId)) {
            return applicationContext.getBean(beanId);
        }
        return null;
    }
    
}

业务类

@RestController
@RequestMapping("/test")
public class TestController {


    @Autowired
    private Factory factory;

    @GetMapping("/factory")
    public String factory(@RequestParam String beanName){
        FactoryServiceA serviceA=(FactoryServiceA)factory.getBean(beanName);
        return serviceA.factoryServiceA(beanName);
    }

具体实现类

@Service("FactoryServiceA")
public class FactoryServiceA {

    public String factoryServiceA(String beanName){
        System.out.println("---------------AAAAAA----------");
        System.out.println(beanName);
        return beanName;
    }
}

备注:
将工厂类的context注入到容器中去,有多种实现方式
例如:实现ApplicationContextAware接口,将context放到容器中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值