责任链模式:定义多个处理类,组成处理链,每个类都是链路上的一个元素,对数据进行处理,如果当前元素处理不了,可以转交给下一个元素处理。
例如给某个人转账,在手机上转账失败了,去自助机上转账,自助机上转账失败了,再去柜台转账。
//转账抽象类
public abstract class Transfer{
//持有下一个转账类对象,本类处理失败,就会发到下一个类上处理
private Transfer next;
boolean trans(){
//如果当前类转账失败,就交给下一个类处理
if(!handle())
next.trans()
}
//处理方法接口
boolean handle();
//设置下一个处理类
void setNext(Transfer next){
this.next=next;
}
}
class TransferA{
boolean handle{
//手机转账,成功返回true,失败返回false
}
}
class TransferB{
boolean handle{
//自助机转账,成功返回true,失败返回false
}
}
class TransferC{
boolean handle{
//柜台转账,成功返回true,失败返回false
}
}