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