责任连模式

package ww.cc.coc;

public abstract class HanderPrice { //使每个子类都能访问到,所以采用protected权限 protected HanderPrice successor; //该方法用于传递请求 public void setSuccessor(HanderPrice successor) { this.successor = successor; }

//该方法用于处理请求
public abstract void pressHander(float discount);

}

package ww.cc.coc;

public class Sales extends HanderPrice{

public void pressHander(float discount) {
	// TODO Auto-generated method stub
	if(discount<=0.05){
		System.out.format("%s批准啦折扣,折扣为%2f\n",this.getClass().getName(),discount);
	}
	else
		successor.pressHander(discount);
}

}

package ww.cc.coc;

public class Manager extends HanderPrice {

public void pressHander(float discount) {
	// TODO Auto-generated method stub
	if(discount<=0.3){
		System.out.format("%s批准啦请求,折扣为%2f\n",this.getClass().getName(),discount);
	}
	else
	{
		successor.pressHander(discount);
	}
}

} 、

package ww.cc.coc;

public class Director extends HanderPrice {

public void pressHander(float discount) {
	if(discount<=0.5){
		System.out.format("%s批准啦请求,折扣为%2f\n",this.getClass().getName(),discount);
	}
	else{
		successor.pressHander(discount);
	}

}

}

package ww.cc.coc;

public class customer { private HanderPrice hander;

public void setHander(HanderPrice hander) {
	this.hander = hander;
}
public void RequestdisCount(float discont){
   hander.pressHander(discont);	
}

}

package ww.cc.coc;

import java.util.Random;

public class Test { public static void main(String args[]){ customer cu=new customer(); cu.setHander(PriceHanderFactory.createHander()); Random rand=new Random();

		for(int i=0;i<100;i++){
			System.out.println(i+":");
			cu.RequestdisCount(rand.nextFloat());
		}
	}

}

package ww.cc.coc;

public class Ceo extends HanderPrice {

public void pressHander(float discount) {
	// TODO Auto-generated method stub
	if(discount<=0.55){
		System.out.format("%s批准啦请求,折扣为%2f\n", this.getClass().getName(),discount);
	}
	else{
		System.out.format("%s拒绝啦请求,折扣为%2f\n",this.getClass().getName(),discount);
	}
}

}

转载于:https://my.oschina.net/u/2511906/blog/823714

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值