责任链模式

public class ChainOfResponsibilityPattern {

    public interface Handler {
        public void handle(HandlerLevel level);
    }
    public enum HandlerLevel{
        TOWN_BOSS(1),CITY_BOSS(2),PROVINCE_BOSS(3);
        HandlerLevel(int level){
            this.level= level;
        }
        private int level;

    }
    public class TownHandler implements Handler{
        private CityHandler cityHandler = new CityHandler();
        public void handle(HandlerLevel level ) {
            if(level.compareTo(HandlerLevel.TOWN_BOSS) > 0){
                cityHandler.handle(level);
            }else{
                System.out.println("Handled by Town BOSS!");
            }
            
        }
        
    }
    public class CityHandler implements Handler {
        private ProvinceHandler provinceHandler = new ProvinceHandler();
        public void handle(HandlerLevel level) {
            if(level.compareTo(HandlerLevel.CITY_BOSS) > 0){
                provinceHandler.handle(level);
            }else{
                System.out.println("Handled by City BOSS!");;
            }
        }

    }
    public class ProvinceHandler implements Handler {
        public void handle(HandlerLevel level) {
            System.out.println("Handled by Province BOSS!");;
        }
    }
    
    public void test(){
        HandlerLevel h1 = HandlerLevel.TOWN_BOSS;
        HandlerLevel h2 = HandlerLevel.CITY_BOSS;
        HandlerLevel h3 = HandlerLevel.PROVINCE_BOSS;
        Handler handler = new TownHandler();
        handler.handle(h1);
        handler.handle(h2);
        handler.handle(h3);
    }
    
    public static void main(String[] args) {
        new ChainOfResponsibilityPattern().test();
    }
}

 适合那种多级处理模式,分级别的处理的情况,责任链顾名思义就是在这条链上的人拥有不同的责任或者所权限;

posted @ 2015-10-06 20:50  √珞珈搬砖工√  阅读(84)  评论(0)    收藏  举报