package com.cheng.zenofdesignpatterns.patterns.chainofresponsibility.ancientfemale; /** * 父系社会,那就是男性有至高权利,handler控制权 */ public abstract class WomanHandler { public final static int FATHER_LEVEL_REQUEST = 1; public final static int HUSBAND_LEVEL_REQUEST = 2; public final static int SON_LEVEL_REQUEST = 3; // 能处理的级别 private int level =0; // 责任传递,下一个责任人是谁 private WomanHandler nextHandler; // 每个类都要说明一下自己能处理哪些请求 public WomanHandler(int _level){ this.level = _level; } // 一个女性(女儿,妻子或者是母亲)要求逛街,你要处理这个请求 public final void handleMessage(IWomen women) { if (women.getType() == this.level) { this.response(women); } else { if (this.nextHandler != null) { // 有后续环节,才把请求往后递送 this.nextHandler.handleMessage(women); } else { // 已经没有后续处理人了,不用处理了 System.out.println("-----------没地方请示了,按不同意处理---------\n"); } } } /* * 如果你属于你处理的返回,你应该让她找下一个环节的人,比如 * 女儿出嫁了,还向父亲请示是否可以逛街,那父亲就应该告诉女儿,应该找丈夫请示 */ public void setNext(WomanHandler _handler){ this.nextHandler = _handler; } //有请示那当然要回应 protected abstract void response(IWomen women); }