职责链模式

来源:互联网 发布:新生报到流程优化 编辑:程序博客网 时间: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
原创粉丝点击