责任链模式(Chain of Responsibility)

模型

输入:Request
处理:Handler =>Handler => Handler的Chain
目的:输入和处理解耦

客户: 只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递。
链: 1.链上的处理,某一节点可以处理完退出,不往下传递
2.可以多个链拼接
3.可以增加删除节点,扩展方便

实例

Key(input event) 的处理

按键或其他Input Event 在接受到之后会一层层向上传递,直到可以处理

InputStage syntheticStage = new SyntheticInputStage();
InputStage viewPostImeStage = new ViewPostImeInputStage(syntheticStage);
InputStage nativePostImeStage = new NativePostImeInputStage(viewPostImeStage,
                        "aq:native-post-ime:" + counterSuffix);
InputStage earlyPostImeStage = new EarlyPostImeInputStage(nativePostImeStage);
InputStage imeStage = new ImeInputStage(earlyPostImeStage,
                        "aq:ime:" + counterSuffix);
InputStage viewPreImeStage = new ViewPreImeInputStage(imeStage);
                InputStage nativePreImeStage = new NativePreImeInputStage(viewPreImeStage,
                        "aq:native-pre-ime:" + counterSuffix);

mFirstInputStage = nativePreImeStage;
mFirstPostImeInputStage = earlyPostImeStage;
servlet 中过滤器Filter

实现一个Filter, FilterChain

public void doFilter(ServletRequest request, ServletResponse response) 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容