首页 > 其他 > 详细

设计模式开始--职责链模式

时间:2015-04-02 22:20:16      阅读:132      评论:0      收藏:0      [点我收藏+]

职责链的模式

一、作用

多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将对象连成一条链,并沿着这条链传递该请求,直到有一个对象可以处理它

二、类图

技术分享

三、实现

(1)定义Handle

技术分享
public abstract class Handle {
    protected Handle successor;
    public void setSeccessor(Handle successor)
    {
        this.successor = successor;
    }
    public abstract void handleRequest(int request);
}
public class ConcreteHandleOne extends Handle {
    @Override
    public void handleRequest(int request) {
        if(request >= 0 && request < 10)
        {
            System.out.println("One 处理请求"+request);
        }
        else if(successor != null)
        {
            successor.handleRequest(request);
        }
    }
}
public class ConcreteHandleTwo extends Handle {
    @Override
    public void handleRequest(int request) {
        if(request >= 10 && request < 20)
        {
            System.out.println("Two 处理请求"+request);
        }
        else if(successor != null)
        {
            successor.handleRequest(request);
        }
    }
}
public class ConcreteHandleThree extends Handle {
    @Override
    public void handleRequest(int request) {
        if(request > 20) 
        {
            System.out.println("Three 处理请求"+request);
        }
        else if(successor != null)
        {
            successor.handleRequest(request);
        }
    }
}
View Code

(2)Client测试类

技术分享
public class Client {
    public static void main(String[] args) {
        Handle h1 = new ConcreteHandleOne();
        Handle h2 = new ConcreteHandleTwo();
        Handle h3 = new ConcreteHandleThree();
        h1.successor = h2;
        h2.successor = h3;
        int request = 14;
        h1.handleRequest(request);
    }
}
View Code

 

设计模式开始--职责链模式

原文:http://www.cnblogs.com/sunshisonghit/p/4388517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!