美文网首页
命令行模式 示例

命令行模式 示例

作者: 黑色海鸥 | 来源:发表于2019-06-13 08:55 被阅读0次

UML

uml

代码示例

创建一个接口

public abstract class KaiDanHandler {

    /**
     * 持有后继的责任对象
     */
    protected KaiDanHandler successor;



    /**
     * 传入参数的,根据具体需要来选择是否传递参数
     */
    public abstract void handleRequest(Data data);
}

创建实现接口的实现类

public class JiNengHandler extends KaiDanHandler {
    
    @Override
    public void handleRequest(Data data) {
        if (data.showJiNeng){
            System.out.println("请去选择节能补贴的赠品");
        }else {
            if (null != successor){
                successor.handleRequest(data);
            }else {
                System.out.println("现在正式开单");
            }

        }
    }
}
public class YanbaoHandler extends KaiDanHandler {
    
    @Override
    public void handleRequest(Data data) {
        if (data.showYanbao){
            System.out.println("请去购买延保");
        }else {
            if (null != successor){
                successor.handleRequest(data);
            }else {
                System.out.println("现在正式开单");
            }
        }
    }
}
public class ZaiTuHandler extends KaiDanHandler {

    @Override
    public void handleRequest(Data data) {

        if (data.showZaitu){
            System.out.println("是否要取消所选在途的商品");
        }else {
            if (null != successor){
                successor.handleRequest(data);
            }else {
                System.out.println("现在正式开单");
            }
        }
    }
}

创建参数实体

public class Data {

    public boolean showZaitu;
    public boolean showYanbao;
    public boolean showJiNeng;
}

模拟请求的客户端

public class Client {

    private Data mData;

    public static void main(String[] args) {
        Client client = new Client();
        client.mData  = client.mockData();

        //创建实现者对象
        YanbaoHandler yanbaoHandler = new YanbaoHandler();
        ZaiTuHandler zaiTuHandler = new ZaiTuHandler();
        JiNengHandler jiNengHandler = new JiNengHandler();

        //设置实现功能的下一任对象
        yanbaoHandler.successor = zaiTuHandler;
        zaiTuHandler.successor = jiNengHandler;

        //发出命令请求
        yanbaoHandler.handleRequest(client.mData);
    }
    private Data mockData(){
        Data data = new Data();
        data.showYanbao = true;
        data.showZaitu = false;
        data.showJiNeng = true;
        return data;
    }
}

相关文章

  • 命令行模式 示例

    UML 代码示例 创建一个接口 创建实现接口的实现类 创建参数实体 模拟请求的客户端

  • Vue项目构建与管理--利用脚手架构建工程

    构建项目 命令行 示例image 安装依赖 命令行 示例image 运行项目 命令行 示例image 打包项目 命...

  • 命令模式

    什么是命令模式 将对象中的行为抽象成具体的命令对象,通过调用者类接收不同的命令行为进行执行 示例图 示例场景 按下...

  • Python(1)

    一.命令行模式和Python交互模式 命令行模式:在开始菜单里:运行-cmd-进入命令行模式 Python交互模式...

  • 12.vim的使用技巧

    命令模式 、命令行模式、编辑模式: INSERT 首次进入文件: 命令模式输入: 表示 命令行模式出现...

  • GetoptLong简单例子

    1 GetoptLong GetoptLong主要是用来处理命令行参数。 示例代码: 命令行调用: 执行结果:

  • mac 配置多个git ssh key

    Tip:以下所有操作在命令行完成 创建ssh key(示例) 创建config文件 配置config(示例) 配置...

  • Python 简单命令运行

    命令行模式和Python交互模式 1命令行模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式 2...

  • vi 命令

    vi一般分为两种模式:命令行模式(command mode)和插入模式(insert mode) 1、命令行模式(...

  • [python基础]-03 Python交互两种形式

    1.Python交互模式 存在命令行和交互式两种模式 2.命令行模式 如何进入命令行模式?1.windows通过w...

网友评论

      本文标题:命令行模式 示例

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