论坛首页 入门技术论坛

初学责任链模式

浏览 1322 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-01   最后修改:2009-11-11

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

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

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);		
	}
}

 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics