当前位置: 首页 > article >正文

【设计模式】职责链模式设计在线文档帮助系统

职责链模式设计在线文档帮助系统

任务三:使用职责链模式设计在线文档帮助系统
某公司欲开发一个软件系统的在线文档帮助系统,用户可以在任何一个查询环境中输入查询关键字,如果当前查询环境下没有相关内容,则系统会将查询按照一定的顺序转发给其他查询环境。基于上述需求,采用职责链模式对该系统进行设计。

cclass在这里插入图片描述

7

1

public abstract class SearchContext {
    protected SearchContext successor;
    public void setSuccessor(SearchContext successor){
        this.successor = successor;
    }
    public abstract void search(String keyword);
}

2

public class JavaSearchContext extends SearchContext {
    @Override
    public void search(String keyword) {
        //模拟实现
        if(keyword.contains("Java")){
            System.out.println("查询关键字Java!");
        }
        else{
            try{
                successor.search(keyword);
            }catch(NullPointerException e){
                System.out.println("未匹配到查询字段!");
            }
        }
    }
}

3

class SQLSearchContext extends SearchContext{

    @Override
    public void search(String keyword) {
        //模拟实现
        if(keyword.contains("SQL")){
            System.out.println("查询关键字SQL!");
        }
        else{
            try{
                successor.search(keyword);
            }catch(NullPointerException e){
                System.out.println("未匹配到查询字段!");
            }
        }
    }
}

4

class UMLSearchContext extends SearchContext{

    @Override
    public void search(String keyword) {
        //模拟实现
        if(keyword.contains("UML")){
            System.out.println("查询关键字UML!!!");
        }
        else{
            try{
                successor.search(keyword);
            }catch(NullPointerException e){
                System.out.println("未匹配到查询字段!");
            }
        }
    }
}

5

public class Mian {

    public static void main(String[] args) {
        String keyword = "UML类图绘制疑惑";

        SearchContext jContext, sContext, uContext;
        jContext = new JavaSearchContext();
        sContext = new SQLSearchContext();
        uContext = new UMLSearchContext();
        jContext.setSuccessor(sContext);
        sContext.setSuccessor(uContext);

        jContext.search(keyword);
        keyword = "SQL语句疑惑";
        jContext.search(keyword);
        keyword = "Java语法疑惑";
        jContext.search(keyword);
        keyword = "各种疑惑";
        jContext.search(keyword);
    }

}


http://www.kler.cn/news/156376.html

相关文章:

  • 销售员怎样才能做到让客户主动来找?
  • (C++)和为s的两个数字--双指针算法
  • CDA level-2 备考经验分享 转数据分析师CDA证书备考 考试相关说明
  • ZYNQ_project:HDMI
  • ubantu配置网卡ip
  • 数据库管理-第122期 配置Halo数据库(202301204)
  • 前后端数据传输格式(下)
  • 日志检索场景ES->Doris迁移最佳实践:函数篇
  • Python+OpenCV实现最强自动扫雷
  • 算法基础--双指针
  • 深度学习——第3章 Python程序设计语言(3.2 Python程序流程控制)
  • PAD平板签约投屏-高端活动的选择
  • C++基础介绍及关键字
  • PHPExcel 导出Excel报错:PHPExcel_IOFactory::load()
  • 分享74个节日PPT,总有一款适合您
  • 【部署】Deploying Trino on linux
  • C++ string类(2)—成员访问、插入、删除、替换、查找和交换操作
  • 免费数据采集软件,多种数据采集方式
  • centos 源码编译gcc10.2
  • Vue框架学习笔记——列表渲染:v-for
  • python——多线程的相关知识点总结
  • Golang数据类型(数字型)
  • 风变科技千万营收的AIGC项目,在Fanbook成功落地,专访风变科技CMO江育麟
  • 创建Asp.net MVC项目实现视图页面数据传值显示
  • leetCode 39.组合总和 + 回溯算法 + 剪枝 + 图解 + 笔记
  • minio服务端搭建使用
  • 智能手表上的音频(四):语音通话
  • ROS-ROS通信机制-话题通信
  • 免费的SEO外链发布工具,提升排名的利器
  • springboot集成springsecurity