锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

策略模式,从防腐层改造聊到Nacos插件的应用

时间:2023-07-04 09:37:00 mb264防腐液位变送器

大家好,我叫大鸡腿。你可以关注我,不断更新技术文章和人生感悟。~

在这里插入图片描述

前言


众所周知,战略模式是一件好事。在我看来,它不仅是一种技术,也是一种思想。

what is 策略模式

当我们遇到不同的场景时,战略模式就像一个工具箱。它的优点是
符合
开关原则和单一原则,当我们需要处理另一个场景时,我们只需要创建另一个工具,而不是修改以前的工具。

防腐层改造

what is 防腐层


我们在学习DDD学习防腐层。它的主要功能是使第三方api隔离不会与内部系统强耦合,提高可扩展性。

how to do it


场景

碰巧在项目中,依赖第三方api,之前因为时间赶,直接和业务代码耦合在一起,最近时间充裕的时候我们会优化。

思路:外部采用防腐层api隔离,采用api实现形式,为以后的扩展提供了良好的基础。

防腐层改造

首先是定义api,通过接口扩展类以实现。

public interface Facade { 
              /** * 处理逻辑 * */     xx<?> dealWith();      /** * 类型 * * @return */     String getType();  }  

然后我们来实现扩展类

 @Service public class xxFacade implements Facade { 
              @Override     xx<?> dealWith(){ 
                 //todo 做特定的逻辑处理     } }  

编写设配器

 @Service public class Adapter { 
              @Resource     private List<Facade> facadeList;          private Facade getFacade(String xx) { 
                 return facadeList.stream().filter(it -> it.getType().equals(xx)).findFirst().orElseThrow(() -> new BizException("没有找到实现类"));
    }

   
    public xx<?> dealWith(xx) { 
        
        return getFacade(xx).dealWith();
    }

}

到这里我们看到,借助spring注入实例的方法,然后通过接口里头的type方法,来判断我们具体要拿出什么工具来解决问题。到此反腐层就改造完成✅

Nacos 插件

我们看下官网的文档,里面也有介绍Nacos插件这一块spi,如下图鉴权这一块的spi。接下来,我们来看下策略模式中里面的体现吧~

首先看到的是接口类,我们可以通过实现这个接口来扩展鉴权功能。

这里就是接口的一种实现类。

这里通过classload来将所有实现该接口的类塞到set里面,然后根据特定的标识来获取。

总结

策略模式很常见的设计模式,我们可以借助它来提高代码质量,提高系统的扩展性。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章