美文网首页
静态代理应用

静态代理应用

作者: 随手点灯 | 来源:发表于2020-03-25 14:55 被阅读0次

现在调用研发域的三个接口去获取 需求 任务 缺陷

  1. 需求: requirement
  2. 任务: task
  3. 缺陷: defect

返回的内容都是 WorkItem 有对应的字段

对应到我们系统里面是

ChangeOrderItemVO 这里面部分字段是相互映射的

现在可以获取到的是itemType 和 itemId

/api/defect/defectById
/api/requirement/scan
/api/task/scanTask

@Autowried
DefectService defectService;

@Autowried
RequirementService requirementService;

@Autowried
TaskService taskService;

List<ChangeOrderItem> changeOrderItems = new ArrayList<>();

for(ChangeOrderItem changeOrderItem : changeOrderItems) {
    
    Long itemId = changeOrderItem.getItemId();
    String itemType = changeOrderItem.getItemType();
    
    // 根据itemType去调用对应的接口,参数是itemId
    WorkItem workItem = null;
    if (itemType == 1) {
        workItem = requirementService.detail(itemId);
    } else if (itemType == 2) {
        workItem = defectService.detail(itemId);
    }else if (itemType == 3) {
        workItem = taskService.detail(itemId);
    }else {
        System.out.print("类型超出范围");
    }
    
    BeanUtils.copyProperties(workItem,changeOrderItem);
    
}

# 第一种方式,代理模式 静态代理这三个类,这样需要发生变化的时候,不需要修改原有的逻辑,但是需要修改代理类

// 基于接口而非实现编程
interface IWorkItemService {
    WorkItem getWorkItemByTypeAndId(String itemType,Long itemId)
}


@Service
class WorkItemService {

    @Autowried
    DefectService defectService;

    @Autowried
    RequirementService requirementService;

    @Autowried
    TaskService taskService;

    public WorkItem getWorkItemByTypeAndId(String itemType,Long itemId) {
        WorkItem workItem = null;
        if (itemType == 1) {
            workItem = requirementService.detail(itemId);
        } else if (itemType == 2) {
            workItem = defectService.detail(itemId);
        }else if (itemType == 3) {
            workItem = taskService.detail(itemId);
        }else {
            System.out.print("类型超出范围");
        }
        return workItem;
    }   
}

相关文章

  • Java JDK Proxy和CGLib动态代理示例讲解

    简介 代理模式在Java中有很多应用场景,而代理又分静态代码和动态代理。静态代理是编写、编译或加载时织入代码实现,...

  • 静态代理应用

    现在调用研发域的三个接口去获取 需求 任务 缺陷 需求: requirement 任务: task 缺陷: def...

  • 浅析设计模式-代理模式

    定义 简单设计 Java 的实现3.1. 静态代理3.2. JDK 动态代理3.3. CGLIB 动态代理 应用实...

  • java | 什么是动态代理?

    最近在复习 Java 相关,回顾了下代理模式。代理模式在 Java 领域很多地方都有应用,它分为静态代理和动态代理...

  • JAVA动态代理的实现方式

    1. 静态代理VS动态代理 代理类可以增强被代理对象的方法。可分为静态代理和动态代理。 1.1 静态代理 静态代理...

  • 带你初识Java的代理模式

    Spring AOP是基于动态代理设计模式实现的,相对的就有静态代理 动态代理和静态代理 静态代理 对于静态代理,...

  • 【重温设计模式】代理模式

    前言 代理模式最典型的应用就是AOP,本文结合主要讲解了代理模式的几种实现方式:静态代理和动态代理,这里动态代理又...

  • Proxy代理者模式(一)

    摘要 本篇笔记针对Java设计模式中最难理解的代理者模式进行讲解,从静态代理、动态代理,及Java相关代理类的应用...

  • Nginx(五)静态代理及动静分离

    一、静态代理 在处理静态资源时,相比于tomcat,nginx性能更好,效率也更高,因此,在实际应用中我们将静态资...

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

网友评论

      本文标题:静态代理应用

      本文链接:https://www.haomeiwen.com/subject/iiztuhtx.html