责任链模式

来源:互联网 发布:色戒 梁朝伟 知乎 编辑:程序博客网 时间:2024/06/07 01:35

说责任链之前,我们先来说责任。责任就是一件事情由谁处理,出了问题由谁负责。无论公司还是政府,都是层层管理的,上面不处理就交给下面。这就形成了一个责任链条, 现在的触屏设备的点击事件也是一样。一般都采用责任链模式,大控件不处理就转给小控件。代码如下:

public class ResponsibilityChain {    public static abstract class Widget {        // 持有后面的责任对象        protected Widget childWidget;//        示意处理请求的方法,可以传参        public abstract void onclick();        public Widget getChildWidget() {            return childWidget;        }        public void setChildWidget(Widget childWidget) {            this.childWidget = childWidget;        }    }    //具体处理者角色    public static class ConcreteWidget extends Widget {        // 事件处理方法        @Override        public void onclick() {            //判断后面是否有要责任对象,没有则处理,有则向后传            if (getChildWidget() != null) {                System.out.println("放过请求");                getChildWidget().onclick();            } else {                System.out.println("处理请求");            }        }    }    public static void main(String[] args) {        //组装责任链        Widget widget1 = new ConcreteWidget();        Widget widget2 = new ConcreteWidget();        widget1.setChildWidget(widget2);        //事件产生        widget1.onclick();    }}

觉得容易理解的话面向对象的23种设计模式点这里

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 牛仔外套皱了怎么办 校服上衣太大了怎么办 淘宝跨店满减后退货优惠怎么办 牛仔外套短了怎么办 衬衫领子软立不起来怎么办 太多衣服要扔怎么办 旅行衣服皱了怎么办 衣服下摆太宽怎么办 短袖会卷起来怎么办 外出一个月冰箱怎么办 孩子喜欢吸手指怎么办 宝宝吸手指睡觉怎么办 宝宝总是吸手指怎么办 忍不住对孩子发火怎么办 婴儿过早站立了怎么办 连体衣露肚脐怎么办 超短裤太宽怎么办 婴儿的脸睡偏了怎么办 油烟机装高了怎么办 鞋子前面翘起来怎么办 宝宝短袖领子大怎么办 宝宝衣服领口大怎么办 婴儿衣服领口大怎么办 宝宝衣领大了怎么办 小婴儿衣服发黄怎么办 宝宝衣服黄黄的怎么办 放久衣服发黄怎么办 旧婴儿衣服发黄怎么办 产假休完 宝宝怎么办 隐形拉链拉不动怎么办 婴儿低烧不退怎么办 宝宝衣领小了怎么办 宝宝的衣领太大怎么办 半袖买大了怎么办 婴儿上眼睑下垂怎么办 孕妇穿胸罩闷怎么办 婴儿拉肚子怎么办拉水水象蛋花样 婴儿拉肚子怎么办拉水水象蛋花图片 小孩喜欢吃被子怎么办 宝宝喜欢吃被子怎么办 宝宝晚上蹬被子怎么办