职责链模式
来源:互联网 发布:新生报到流程优化 编辑:程序博客网 时间:2024/05/20 20:18
剧情简要:
学习此模式,让笔者联想到自然界的生物链。打个比方:大鱼吃小鱼,小鱼吃虾米。河里的小虾米问大鱼,“你要不要吃我啊?”大鱼说“你太小了,吃了==没吃,return懒得吃!”然后虾米又问小鱼、小螃蟹、小河马同样的问题。其实如果小虾米这么想自我了结的话,根本不用这么费劲。这就开始了我们职责链模式的介绍和使用。
主角上场:
所谓职责链,其实就是在以小虾米为被食者的生物链上,将所有的捕食者进行有序的职责排列。对外提供一个捕食者的接口。如果先问到大鱼,大鱼不想吃(不能处理此事件)时,便自动跳转到询问职责链上下一个捕食者,直至遇到那个对味的,美美的享受一餐,成全小虾米的夙愿。省去了小虾米每次都要找人问(导致问、答两类间强耦合),问完了得到答案,也不知道是喜是悲。
具体代码入下:
Abstract class Handler //提供一个抽象处理接口类{Protected Handler successor;Public void SetSuccessor(Handler successor){This.successor=successor;}Public abstract void HandlerRequest(int request)}Class ConcreteHandler1:Handler //具体处理者(小鱼、大鱼、小螃蟹){Public override HandlerRequest( int request){If (request>=0 && request<10) //处理条件,满足此条件,则输出“已处理”字样{Console.wrieteline " 已处理 "}Else if (successor !=null) //如果处理不了,则转向下一个对象,直至有对象可以处理此要求。{Successor.HandlerRequest(request);}}}
使用职责链模式的好处呢,就是当请求发出,不管怎么传递,最终都会有一个具体处理对象对此请求做出处理。同时也降低了请求发出者和处理者间的耦合度。
观后感:
总结到这里吧,对设计模式一书也有了点自己的拙见,跟大家分享。虽然这本书通过生活中大量实例来对每个模式进行剖析,引人入胜,阅读者也拍手称赞。但是我们在读的时候,不仅仅要能理解作者举的例子,还应该联系自己的生活实际,去联想,看看这个模式对应我们生活的某部分,我们能否举出来更恰当有意思的实例。所谓站在巨人的肩膀上嘛,通过大脑反复思考推敲出来的东西,才是自己的,不然总在为作者的天马行空而激动喝彩,23个模式看完了,也就忘了差不多了。
个人拙见,仅供参考。
0 0
- 职责链设计模式
- 职责链模式
- 职责链模式
- 职责链模式
- ChainOfResponsibility(职责链)模式
- 职责链模式ChainOfResponsibility
- 职责链模式
- 职责链模式 ResponsibilityChainPattern
- 【设计模式】职责链
- 职责链模式
- java职责链模式
- 职责链模式
- 职责链模式
- 职责链模式(python)
- 职责链模式
- 职责链模式
- 职责链模式
- 职责链模式
- 几个sql语句的介绍
- 安装 PHP 的 PECL HTTP 扩展
- stm32的CAN通信
- Android 自动化测试—robotium(五)Spinner控件
- 五种常见php设计模式(转)
- 职责链模式
- http1.0 和http1.1 区别
- Virtualbox中Linux添加一个新磁盘->创建分区->格式化->挂载分区
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- mysql临时表的创建
- java 查询目录下所有的文件(包含递归)
- 作为一个新人,怎样学习嵌入式Linux?
- qt工程引入opencv库步骤
- 网站发布,CSS文件和图片不能加载原因之一