基于SpringBoot的策略模式多实现类注入(Map注入)

1前言

在业务处理的过程中遇见一个场景,图形Shape分A,B,C,他们都是对应的实现都是正删改查,但是不同的图形Shape对应的增删改查业务逻辑有存在差异,这个时候如果不想办法设计代码就会出现A,B,C三个图形Shape都要写一个对应接口(XXXserver),然后分别再去实现他们(XXXserverImpl),如果后来再增加一台图形Shape D,我们又要去重复相关接口和实现,不仅显得代码冗余,更是不好维护和管理,所以利用设计模式---策略模式就解决了这个问题。

2基础知识

2.1对@Autowired注解的理解

在平常使用中我们对@Autowired都是这样用

@Autowired
private XXXService service;

解释说明:@Autowired是按照byType注入的(即按照bean的类型),当注入接口的时候我们都知道,他是注入的是这个接口的实现类,只不过引用是接口而已,当你调用其中的方法的时候,实质是调用接口实现的方法(多态原理),所以XXXService有多个实现类时,用上面代码块的方式进行注入,会报错。

3策略模式的引入

3.1代码展示:

3.1.1一个接口有多个实现

//接口
public interface Shape {
   void draw();
}
//实现1
@Service
public class Rectangle implements Shape {
   @Override
   public void draw() {
      System.out.println("Inside Rectangle::draw() method.");
   }
}

                
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值