设计模式之职责链模式(ChainOfResponsibilityPattern)
代码下载
1.概念
为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
2.类图
模拟一个审批链条,雇员->领导->经理.金额审批权限分别为1000,2000,3000.
超出权限自动转到上级审批。

3.测试代码
AbstractExamine employee = new Employee();
AbstractExamine leader = new Leader();
AbstractExamine manager = new Manager();
employee.SetUpExamine(leader);
leader.SetUpExamine(manager);
string s = "";
s = s + employee.Examine(new Model() { ID = "1", Money = 100 });
s = s + employee.Examine(new Model() { ID = "2", Money = 1500 });
s = s + employee.Examine(new Model() { ID = "3", Money = 2500 });
s = s + employee.Examine(new Model() { ID = "4", Money = 4500 });
this.Text = s;
代码下载
分享到:
相关推荐
责任链模式(ChainOfResponsibilityPattern)是一种行为型设计模式,它将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。责任链模式通常通过将请求在一个链中传递而使所有对象都有机会处理请求。 访问...
设计模式分为三大类:创建型模式(如单例模式、工厂方法模式、抽象工厂模式)、结构型模式(如代理模式、装饰器模式、适配器模式)和行为型模式(如观察者模式、策略模式、职责链模式)。 在Objective-C中,我们...
17. **责任链模式(ChainOfResponsibilityPattern)**:通过给多个对象处理请求的机会,减少请求的发送者和接收者之间的耦合。 18. **访问者模式(VisitorPattern)**:表示一个作用于某对象结构中的各元素的操作,...
- 责任链模式(ChainOfResponsibilityPattern):为了避免发送者和多个接收者耦合在一起,将这些对象连成一条链,并沿着这条链传递请求直到有一个对象处理它。 - 访问者模式(VisitorPattern):表示一个作用于某...
15. 责任链模式【CHAINOFRESPONSIBILITYPATTERN】:为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 16. 访问...
8. [职责链模式](worthed/OriginBlog/blob/master/articles/ChainOfResponsibilityPattern.md) 9. [解释器模式](worthed/OriginBlog/blob/master/articles/InterpreterPattern.md) 10. [访问者模式](worthed/...
18. 责任链模式【ChainofResponsibilityPattern】:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 19. 原型...
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板,可以提高代码的可重用性、可读性和可维护性。在Java编程中,设计模式的应用非常广泛,它可以帮助开发者遵循良好的编程习惯,提高软件...
14. 职责链模式:避免请求的发送者和接收者之间的耦合,通过将对象链接成链,沿着链传递请求,直到被处理。"ChainOfResponsibilityPattern"可能包含处理请求的多个对象形成链的示例。 15. 命令模式:将请求封装为一...
12. **职责链模式**:将请求沿着处理者链传递,直到某个处理者处理该请求。`ChainOfResponsibilityPattern`可能包含一系列处理类,每个类都可以处理一部分请求,或者将请求传递给下一个处理者。 13. **命令模式**:...
职责链模式避免将请求的发送者和接收者耦合在一起。`ChainOfResponsibilityPattern`模块展示了如何建立职责链。 十五、命令模式 命令模式将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。`Command...