Java 设计模式 之 责任链模式

本文通过一个员工离职审批流程的例子,详细介绍了责任链设计模式的具体实现。该模式允许请求沿着处理者链传递,直到有一个处理者处理它为止。文章展示了如何通过Java编程语言实现这一模式,包括各个处理节点的具体职责划分。

http://www.verejava.com/?id=16999052620463

ackage com.chain.theory;

public class TestHandler
{
	public static void main(String[] args)
	{
		Handler hrHandler=new HrHandler(null);
		Handler managerHandler=new ManagerHandler(hrHandler);
		Handler financeHandler=new FinanceHandler(managerHandler);
		Handler frontHandler=new FrontHandler(financeHandler);
		
		frontHandler.handleRequest("离职");
	}
}





package com.chain.theory;

public class ManagerHandler implements Handler
{
	private Handler nextHandler;
	
	public ManagerHandler(Handler nextHandler)
	{
		this.nextHandler=nextHandler;
	}
	

	@Override
	public void handleRequest(String request)
	{
		if("审批".equals(request))
		{
			System.out.println("经理审核完毕");
			if(nextHandler!=null)
				nextHandler.handleRequest("批准");
		}
		
	}

}





package com.chain.theory;

public class HrHandler implements Handler
{
	private Handler nextHandler;
	
	public HrHandler(Handler nextHandler)
	{
		this.nextHandler=nextHandler;
	}
	

	@Override
	public void handleRequest(String request)
	{
		if("批准".equals(request))
		{
			System.out.println("人事批准");
			if(nextHandler!=null)
				nextHandler.handleRequest("完毕");
		}
		
	}

}





package com.chain.theory;

public interface Handler
{
	public void handleRequest(String request);
}





package com.chain.theory;

public class FrontHandler implements Handler
{
	private Handler nextHandler;
	
	public FrontHandler(Handler nextHandler)
	{
		this.nextHandler=nextHandler;
	}
	

	@Override
	public void handleRequest(String request)
	{
		if("离职".equals(request))
		{
			System.out.println("离职申请");
			if(nextHandler!=null)
				nextHandler.handleRequest("审核");
		}
		
	}

}





package com.chain.theory;

public class FinanceHandler implements Handler
{
	private Handler nextHandler;
	
	public FinanceHandler(Handler nextHandler)
	{
		this.nextHandler=nextHandler;
	}
	

	@Override
	public void handleRequest(String request)
	{
		if("审核".equals(request))
		{
			System.out.println("财务审核完毕");
			if(nextHandler!=null)
				nextHandler.handleRequest("审批");
		}
		
	}

}

http://www.verejava.com/?id=16999052620463

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值