职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。通过将多个处理对象组成一个链,当请求从链头开始传递时,每个处理对象都有机会处理该请求,直到其中一个处理对象处理完成,或者没有任何处理对象能够处理该请求为止。
职责链模式主要包含以下几个角色:
下面是一个简单的职责链模式的 Java 示例,该示例模拟一个商品售卖的场景,其中不同的销售员有不同的折扣策略,根据销售员的等级来确定采用哪种折扣策略。
public class Client {
public static void main(String[] args) {
// 创建销售员对象
Salesman junior = new JuniorSalesman();
Salesman middle = new MiddleSalesman();
Salesman senior = new SeniorSalesman();
// 构建职责链
junior.setNextSalesman(middle);
middle.setNextSalesman(senior);
// 创建商品对象
Product product = new Product("手机", 120.0);
// 发送请求
double price = junior.calcPrice(product);
System.out.println("最终价格:" + price);
}
}
在上面的示例代码中,客户端首先创建了三个销售员对象,然后通过 setNextSalesman
方法将它们组成了一个职责链。客户端还创建了一个商品对象,并将该对象发送给职责链的头部,即初级销售员,最终得到了商品的折扣价格。
这个示例比较简单,但是职责链模式可以应用于很多场景,比如 Web 应用中的过滤器、日志记录器等。职责链模式将请求的发送者和接收者解耦,降低了系统的耦合度,同时也增强了系统的灵活性和可扩展性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。