`
madbluesky
  • 浏览: 81811 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初学责任链模式

    博客分类:
  • java
阅读更多

初学设计模式,写的一个责任链模式,请大家看看有没什么问题啊.

    由于是初学,对设计模式的理解不深,多多指教.

import java.util.*;
//业务处理者借口
interface Transactor {
	boolean deal(long money);
}

//业务处理者链
class Transactors { 
	List<Transactor> transactors;
	//把业务处理者注册到业务处理链
	public void regist(Transactor transactor) {
		if( transactors == null ){
			transactors = new ArrayList();
		}
		transactors.add(transactor);
	}

	public boolean deal(long money) {
		for(Transactor tra : transactors) {
			if(tra.deal(money)) {//遍历所有业务处理者,找到能处理的就返回.
				return true;
			}
		}
		return false;
	}
}

//经理 资金大于等于1万的由经理处理
class Manager implements Transactor {
	public	boolean deal(long money) {
		if(money >= 10000) {
			System.out.println("大于1w 块的业务由 manager 处理");
			return true;
		}
		return false;
	}
}

//业务员 资金少于1万的由业务员处理
class Oprator implements Transactor {
	public 	boolean deal(long money) {
		if(money < 10000) {
			System.out.println("小于1w 块的业务由 Oprator 处理");
			return true;
		}
		return false;
	}
}

public class PossibilityChainTest {
	public static void main(String[] args) {
		Transactors transactors = new Transactors();
		transactors.regist(new Manager());//产生经理并注册到业务处理者链
		transactors.regist(new Oprator());//产生业务员并注册到业务处理者链
		transactors.deal(100000l);		
	}
}

 

分享到:
评论

相关推荐

    基于Java工厂、装饰者、策略、责任链模式的办公座椅销售系统

    利用工厂模式、装饰者模式、策略模式、责任链模式进行设计与实现。工厂模式完成办公椅不同种类的生成,装饰者模式完成给办公椅添加配件,策略模式完成不同打折算法的自动更替,责任链模式以及反射机制完成不同职位...

    责任链设计模式开发的demo

    写了几个实现责任链模式的代码,仅供参考,环境jdk1.8,代码完成可用,经过测试的,对于初学者还是有一定的帮助,

    Introduction.rar

    GOF(23种设计模式代码实列,主要用于初学者)分为三大类: ...行为模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

    设计模式演示代码

    压缩包中包含了观察者模式,责任链模式以及包裹模式三个重要的设计模式的演示代码,是用java写的。非常适合初学设计模式的人学习,因为大多数的人学习设计模式只是停留在理论阶段,但是实际上需要自己去写出具体的...

    设计模式精解及面试攻略

    第6章阐释行为模式(职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者模式);第7章针对所有设计模式向初学者提供一些提示;第8章包括常见的面试问题及实际示例;第9章涵盖Java...

    designpatterntuts:Java 教程的设计模式

    行为模式责任链命令互通者交互器调解员纪念观察员状态空对象战略模板游客 架构模式MVC 业务代表复合实体数据访问对象前端控制器拦截过滤器服务定位器传输对象 一些资源Java初学者设计模式维基Java 设计模式维基设计...

    23个软件设计类图详解.rar

    1、Chain of Responsibility 职责链 2、Command 命令 3、Interpreter 解释器 4、Iterator 迭代器 5、Mediator 中介者 6、Memento 备忘录 7、Observer 观察者 8、State 状态 9、Strategy 策略 10、Template...

    二十三种设计模式【PDF版】

    设计模式之 Chain of Responsibility(责任链) 各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个. 设计模式之 Mediator(中介) Mediator 很象十字路口的红绿灯,每个车辆只需和红绿灯交互...

    PhpDeveloperEssentialPackage:备忘单

    责任链模式 装饰图案 策略模式 观察者模式 很快,工厂模式和单例模式将被添加到该库中。 最初由Jeffrey Way教授的模式。 有趣PHP算法 从各种渠道搜集到的资料,您将在这里找到整理说明的方法,这些说明可能会让您...

    ocmjea-design-patterns:OCM Java EE 企业架构师认证考试的设计模式(GoF 和 Java EE 模式)

    Java EE 模式) 对于设计模式的初学者,以下列表(按顺序)将对您的学习有所帮助: 工厂方法战略装饰器合成的迭代器模板方法抽象工厂建造者单身人士代理人适配器桥调解人正面观察者责任链纪念命令原型状态游客蝇量级...

    laracasts:在我为适当学习现代PHP和OOP而进行的漫长逾越之旅中的Laracast课程之后的笔记

    拉拉卡斯(Laracasts) ... 部分转录,但也进行了修改,以增加信息或重新排序的方式...:责任链 :PHP中的规范模式 :PHP中的规范模式:第2部分 :观察这个傻瓜 PHP Practitioner(适用于初学者PHP) : :一对多 :多

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    asp.net知识库

    2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 ...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................

    java面试题以及技巧

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题目与技巧1

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题及技巧4

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题及技巧3

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

Global site tag (gtag.js) - Google Analytics