首页 > 其他分享 >适配器的应用(泛型模式)

适配器的应用(泛型模式)

时间:2022-08-19 16:44:12浏览次数:64  
标签:return 适配器 param Override boolean 模式 泛型 protected public

适配器模式是一种重要的设计模式,能让代码简练。直接上代码。
定义接口,如下所示:

public interface IOrderOperate<C, U, D> {

    /**
     * 创建单据
     */
    boolean creatOrder(C param);

    /**
     * 批量创建
     * @param param
     * @return
     */
    boolean batchCreateOrder(C param);

    /**
     * 修改单据
     */
    boolean updateOrder(U param);

    /**
     * 删除单据
     */
    boolean deleteOrder(D param);


}

定义抽象类如下所示:主要是在抽象类中完成保存,修改调用第三方接口实现的逻辑。

@Component
@Slf4j
public abstract class AbstractOperate<C, U, D> implements IOrderOperate<C, U, D> {

    @Autowired
    private SalesRepo salesRepo;


    protected abstract SaveDTO convertCreate(C param);

    protected abstract List<UpdateDTO> convertUpdate(U param);

    protected abstract DelDTO convertDelete(D param);

    @Override
    public boolean creatOrder(C param) {
        SaveDTO createParam = convertCreate(param);
        return salesRepo.saveSalesUnInvoice(createParam);
    }

    @Override
    public boolean updateOrder(U param) {
        List<UpdateDTO> updateParams = convertUpdate(param);
        return salesRepo.updateSalesUnInvoice(updateParams);
    }

    @Override
    public boolean deleteOrder(D param) {
        DelDTO deleteParam = convertDelete(param);
        return salesRepo.deleteUnInvoiceBySalesOrderId(deleteParam);
    }

}

定义适配器实现,完成

@Component
@Slf4j
public class SalesInvoiceAdapter extends
        AbstractOperate<SalesRefundOrderCreateMessageDto, SalesRefundOrderUpdateMessageDto, SalesRefundOrderDeleteMessageDto> {


    @Autowired
    private SalesRefundRepo salesRefundRepo;

    @Override
    protected SaveDTO convertCreate(SalesRefundOrderCreateMessageDto param) {
        SalesRefundOrderDetailDto salesRefundOrderDetailDto = salesRefundRepo.getById(param.getId());
        SaveSalesUnInvoiceDTO createParam = new SaveSalesUnInvoiceDTO();return createParam;
    }

    @Override
    protected List<UpdateDTO> convertUpdate(SalesRefundOrderUpdateMessageDto param) {
        SalesRefundOrderDetailDto salesRefundOrderDetailDto = salesRefundRepo.getById(param.getId());
        UpdateSalesDTO updateParam = new UpdateSalesDTO();return Arrays.asList(updateParam);
    }

    @Override
    protected DelDTO convertDelete(SalesRefundOrderDeleteMessageDto param) {
        List<SalesRefundOrderDO> salesRefundOrderDOList = salesRefundRepo.getByIds(param.getIds());
        DelUnInvoiceBySalesIdDTO deleteParam = new DelUnInvoiceBySalesIdDTO();return deleteParam;
    }

 
}

总结:适配器设计模式是一种很常见的设计模式。

 

标签:return,适配器,param,Override,boolean,模式,泛型,protected,public
From: https://www.cnblogs.com/jelly12345/p/16602519.html

相关文章

  • 基于泛型实现的B-Tree号称比用interface的快20%~30%
    测试比较的是在B-Tree里面存放int类型数字这个非常特殊的场景。Google的实现中参数都是interface,因为int类型的数字要转成interface,且发生了逃逸。用泛型减少了数字分配到......
  • 设计模式-单例模式
    单例模式:简单地说就是一个实例即一个对象,全局只用这一个对象。如何保证一个对象呐?私有的构造函数,保证外界不能直接new一个对象,那么就保证了单一性;但......
  • java中23种设计模式
    一、设计模式分类1.设计模式分类  2.设计模式特点单例模式:某个类只能有一个实例,提供一个全局的访问点。简单工厂:一个工厂类根据传入的参量决定创建出那一种产品类......
  • windows自动切换深色模式(夜晚模式)
    windows系统上怎么根据日出日落时间判断切换为深色模式或浅色模式呢?windows系统自带了一个叫做“任务计划程序”的软件。可以通过“开始菜单”中的搜索找到。然后选择“......
  • 心智模式
    人不是被事物本身困扰,而是被关于他们的意见所困扰。人的情绪、思维和行动是一体的。推动人自我发展的内在动机:安全感、自主性和胜任感。 积极的成长型思维:安全感......
  • Servlet特性研究之异步模式
    Servlet只有同步模型是怎样的?异步处理是Servlet3.0版本的重要功能之一,分析异步处理模型之前,先看看同步处理的过程是怎样的:客户端发起HTTP请求一个动态ServletAPI,请求......
  • .NET 异步编程模式 (四)-TAP
    TAP是基于任务的异步模式,在.NETFramework4中引入。TAP取代了APM和EAP,是推荐的异步编程模式。async/awaitasync和await是为异步编程提供的语法糖,方便我们快捷......
  • 报价模式的采购销售模式erp项目系统逻辑和数据库设计
    2022年8月10日13:56:22传统的电商模式和报价模式对比报价模式是先报价,在去采购对应的产品或者原料,在入库,出库给购买人,顺序不同,导致整个数据库接口不同举个例子在有色金......
  • ZYNQ系列VITIS不支持JTAG模式的核心板烧录方法
    2-1:系统环境变量修改    对于ZYNQ或者MPSOC下载QSPI程序需要用到2个文件    Boot.bin文件:改文件由fsbl.elf文件、fpga.bit文件、应用程序.elf文件合成  ......
  • ACM模式细节
    牛客网的ACM模式需要自己写输入输出,在这里简单记录一下:基本答题框架:importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Sc......