美文网首页
2022-04-01_Java类图关系基本知识学习笔记

2022-04-01_Java类图关系基本知识学习笔记

作者: kikop | 来源:发表于2022-04-01 10:49 被阅读0次

20220401_Java类图关系基本知识学习笔记

1概述

1.1类图节接口关系说明

IOrder:定义订单相关的业务操作,如支付。

IOrderServiceGroupDispatcher:定义订单服务调度接口。

AbstractOrder:实现IOrder接口,订单业务操作的实现类,具体的执行时序,业务逻辑大概已经确定,相当于模板方法了。

注意,这里调度接口中的方法是抽象的,由具体的子类实现。

DefaultOrder:订单实现子类,提供了调度next()方法的具体实现,如负载均衡等。

image-20220401104219089.png

2代码示例

2.1IOrder

package com.kikop.javaclassstudy;


/**
 * @author kikop
 * @version 1.0
 * @project myjvmdemo
 * @file IOrder
 * @desc
 * @date 2022/4/1
 * @time 10:30
 * @by IDE IntelliJ IDEA
 */
public interface IOrder {
    void payByOrder(String strOrderId);
}

2.2IOrderServiceGroupDispatcher

package com.kikop.javaclassstudy;

import com.kikop.javaclassstudy.service.OrderService;

/**
 * @author kikop
 * @version 1.0
 * @project myjvmdemo
 * @file IOrderServiceGroupDispatcher
 * @desc 调度接口定义, 由默认的类实现, DefaultOrder
 * @date 2022/4/1
 * @time 10:30
 * @by IDE IntelliJ IDEA
 */
public interface IOrderServiceGroupDispatcher extends IOrder {

    /**
     * 提供订单服务的负载均衡
     *
     * @return
     */
    OrderService next();

// 可不写
//    @Override
//    void payByOrder(String orderInfo);
}

2.3AbstractOrder

package com.kikop.javaclassstudy;

/**
 * @author kikop
 * @version 1.0
 * @project myjvmdemo
 * @file AbstractOrder
 * @desc 订单抽象类,提供基本的执行骨架
 * 类似:AbstractEventExecutorGroup,直接调用 调度接口中的 next()方法实现
 * @date 2022/4/1
 * @time 10:30
 * @by IDE IntelliJ IDEA
 */
public abstract class AbstractOrder implements IOrderServiceGroupDispatcher {

    @Override
    public void payByOrder(String strOrderId) {
        System.out.println("--1.执行支付...");
        System.out.println("--begin " + this.getClass().toString() + ":" + "payByOrder()");

//        // 1.获取一个可用的订单服务
//        OrderService orderService = next();
//        // 2.执行
//        String orderInfo = orderService.getOrderInfo(strOrderId);

        String orderInfo = next().getOrderInfo(strOrderId);
        System.out.println("--end " + this.getClass().toString() + ":" + "payByOrder()");
    }
}

2.4DefaultOrder

package com.kikop.javaclassstudy;

import com.kikop.javaclassstudy.service.OrderService;
import com.kikop.javaclassstudy.service.impl.OrderServiceImpl;

/**
 * @author kikop
 * @version 1.0
 * @project myjvmdemo
 * @file DefaultOrder
 * @desc 订单的默认实现, 提供具体的调度算法
 * @date 2022/4/1
 * @time 10:30
 * @by IDE IntelliJ IDEA
 */
public class DefaultOrder extends AbstractOrder {

    public DefaultOrder() {
//        System.out.println(this.getClass().toString() + ":" + "DefaultOrder()");
    }

    /**
     * 实现服务调度接口中的 next 默认方法
     * 可基于某种策略进行负载均衡
     * @return
     */
    @Override
    public OrderService next() {
        System.out.println("----2.获取调度信息...");
        System.out.println("----begin " + this.getClass().toString() + ":" + "next()");
        System.out.println("----end " + this.getClass().toString() + ":" + "next()");
        return new OrderServiceImpl();
    }
}

2.5测试

package com.kikop.javaclassstudy;


/**
 * @author kikop
 * @version 1.0
 * @project myjvmdemo
 * @file DefaultOrderTest
 * @desc
 * @date 2022/4/1
 * @time 10:30
 * @by IDE IntelliJ IDEA
 */
public class DefaultOrderTest {

    public static void main(String[] args) {

        String strOrderId = "1000";
        DefaultOrder defaultX = new DefaultOrder();
        defaultX.payByOrder(strOrderId);
    }
}

相关文章

  • 2022-04-01_Java类图关系基本知识学习笔记

    20220401_Java类图关系基本知识学习笔记 1概述 1.1类图节接口关系说明 IOrder:定义订单相关的...

  • uml类图的几种关系-方便记忆

    文章是学习Graphic Design Patterns笔记 先上一图,按住不表,先介绍几种关系 泛化关系 实现类...

  • Proxy 代理模式

    设计原则学习笔记 设计模式学习笔记 作用 为对象提供增强作用 类图 图为静态代理。另有动态代理模式,由于类图不具...

  • UML类图

    UML类图帮助我们标明类之间的关系,而在学习UML类图之前,得先理清类与类之间的关系。类的关系有泛化(Genera...

  • mongodb 学习笔记

    mongodb 深入学习笔记 mongodb基本知识 mongodb是介于关系型数据库与非关系型数据库之间的NoS...

  • ios学习笔记一类的继承关系

    ios学习笔记一类的继承关系

  • java学习笔记、资料

    文档类笔记 学习视频类资料 思维导图部分: java集合类思维导图 操作系统思维导图 设计模式思维导图 线程相关思...

  • Command 命令模式

    设计原则学习笔记 设计模式学习笔记 作用 将动作的请求和动作的表现解耦 类图 我这里与大部分的类图不同,我认为R...

  • C++线下测试回顾

    题目地址 有同学说不知道怎么画内存模型图,我这里附几个教程UML类图小结UML类图与类的关系详解类似的教程笔记网上...

  • UML

    参考 plantuml 类图 类图常见的关系: 继承(Inheritance),实现关系(Realization/...

网友评论

      本文标题:2022-04-01_Java类图关系基本知识学习笔记

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