设计模式-责任链模式

责任链模式

public class ChainOfResponsibility {
    public static void main(String[] args) {
        Request request = new Request(false, true, true, true);
        RequestFreHandler requestFreHandler = new RequestFreHandler(new LoginHandler(null));
        if (requestFreHandler.process(request)) {
            System.out.println("完成");
        } else {
            System.out.println("失败");
        }
    }
}

class Request {
    private boolean login;
    private boolean ok;
    private boolean permit;
    private boolean keyWord;
    private String body;

    public Request(boolean login, boolean ok, boolean permit, boolean keyWord) {
        this.login = login;
        this.ok = ok;
        this.permit = permit;
        this.keyWord = keyWord;
    }

    public boolean isLogin() {
        return login;
    }

    public void setLogin(boolean login) {
        this.login = login;
    }

    public boolean isOk() {
        return ok;
    }

    public void setOk(boolean ok) {
        this.ok = ok;
    }

    public boolean isPermit() {
        return permit;
    }

    public void setPermit(boolean permit) {
        this.permit = permit;
    }

    public boolean isKeyWord() {
        return keyWord;
    }

    public void setKeyWord(boolean keyWord) {
        this.keyWord = keyWord;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }
}

abstract class Handler {
    Handler next;

    public Handler(Handler next) {
        this.next = next;
    }

    public Handler getNext() {
        return next;
    }

    public void setNext(Handler next) {
        this.next = next;
    }

    abstract boolean process(Request request);
}

class RequestFreHandler extends Handler {

    public RequestFreHandler(Handler next) {
        super(next);
    }

    @Override
    boolean process(Request request) {
        System.out.println("访问频率");
        if (request.isOk()) {
            Handler next = getNext();
            if (next == null) {
                return true;
            }
            boolean process = next.process(request);
            if (process) {
                return true;
            }
        }
        return false;
    }
}

class LoginHandler extends Handler {
    public LoginHandler(Handler next) {
        super(next);
    }

    @Override
    boolean process(Request request) {
        System.out.println("登录");
        if (request.isLogin()) {
            Handler next = getNext();
            if (next == null) {
                return true;
            }
            if (next.process(request)) {
                return true;
            }
            return true;
        }
        return false;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值