码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-02 22:21:48      阅读:147      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!