天天看点

职责链模式设计模式之职责链模式

设计模式之职责链模式

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。

--------《大话设计模式》

就拿大话设计模式的这个例子来说

小菜实习期到了,想转正,他就向经理提出想加薪,经理无法做主就像总监提出了小菜的想法,总监也无法做主,最终向总经理提出了小菜的请求

从这个例子我们能简单的看出,职责链模式就是若无法处理某个请求,就一层一层的传递知道有个类能处理这个请求为止

管理者责任类,用来设置管理者姓名,设置管理者,帮员工完成加薪请求

职责链模式设计模式之职责链模式

以下是经理总经理总监类,这三个类大同小异,就是指责中处理的分类

职责链模式设计模式之职责链模式
职责链模式设计模式之职责链模式
职责链模式设计模式之职责链模式

以下是申请类,有设置申请的类型,内容,数量的多少相应的方法

职责链模式设计模式之职责链模式

以下是测试类

职责链模式设计模式之职责链模式
职责链模式设计模式之职责链模式

我们看到结果,当加薪3300的时候大于我们设定的500,总监就会考虑

我们再设定一下400,就会按照我们的预期同意

职责链模式设计模式之职责链模式

一下附上我们这次代码的结构图

职责链模式设计模式之职责链模式

此次代码重要的是理解整个职责链模式的运作过程,中间代码还有一些瑕疵,比如没有处理若请假6天以上该由谁去解决

职责链模式的优点:接受者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简化对象的相互连接,它们仅需要保持一个指向后继承者的引用,而需要保持它所有的候选接受者的引用,提高了系统的灵活性和可扩展性。

职责链模式的缺点;每次都是从链头开始,一级一级往上传递,当职责链比较长时,可能会有较严重的性能问题

若有出错,还望指正,共勉

继续阅读