当前位置: 首页 > news >正文

网站链接怎么做二维码推广普通话绘画

网站链接怎么做二维码,推广普通话绘画,隧道建设网站无法登录,wordpress添加媒体库定义 责任链模式是一种行为型设计模式#xff0c;用于在对象间建立一条处理请求的链。它允许多个对象有机会处理请求#xff0c;从而减少请求的发送者和接收者之间的耦合。在责任链模式中#xff0c;每个接收者包含对另一个接收者的引用#xff0c;形成一条链。如果一个对…定义 责任链模式是一种行为型设计模式用于在对象间建立一条处理请求的链。它允许多个对象有机会处理请求从而减少请求的发送者和接收者之间的耦合。在责任链模式中每个接收者包含对另一个接收者的引用形成一条链。如果一个对象不能处理请求它会将请求传递给链中的下一个对象直至链的末端。 责任链模式由多个处理器或接收者组成每个处理器决定自己是否处理请求或将其传递给链上的下一个处理器。这种模式实现了发送者和接收者之间的解耦同时允许动态地调整链中的处理器。 责任链模式主要包含以下两个角色 处理器Handler 定义了处理请求的接口或抽象类并通常持有对下一个处理器的引用。在其子类中它可以选择处理请求或将请求传递给链上的下一个对象。 具体处理器Concrete Handler 实现处理器接口的具体类。每个具体处理器决定它是否要处理请求如果不处理则将请求传递给链中的下一个对象。 解决的问题 请求的发送者和接收者解耦 在没有责任链模式的情况下请求的发送者需要知道哪个接收者能够处理该请求并直接调用相应的处理方法。责任链模式使得请求的发送者不需要直接与具体的接收者交互从而解耦了发送者和接收者。 动态处理请求 责任链模式允许动态地重新组织和分配责任链上的处理者。这意味着可以在运行时改变请求的处理顺序或者增加新的处理者。 简化对象间的连接 通过责任链可以减少对象间复杂的条件语句。在责任链模式中请求沿着链传递直到被处理。这避免了显式的多重条件判断。 增加处理者的灵活性 责任链模式让每个处理者都有机会处理请求。处理者可以决定是否处理请求或者将请求传递给链上的下一个对象。 分布式责任 责任链模式允许多个对象处理请求而不是只有一个对象负责所有的情况。这种分布式责任有助于代码的复用和扩展。 使用场景 多个对象可以处理同一个请求但具体的处理者在运行时才确定 当一个请求可能由多个不同的对象处理但是具体由哪个对象处理在运行时才决定时责任链模式是理想的解决方案。 请求的发送者不需要知道是谁处理了请求 如果请求的发送者不需要知道请求最终由哪个对象处理责任链模式可以将请求的发送和处理解耦。 动态指定一组对象处理请求 当需要动态地指定一系列对象来处理请求时责任链模式提供了一种灵活的方法来组织这些对象。 实现不同方式的请求处理 在有多种处理方式并且希望根据请求的类型或条件以不同的方式处理时责任链模式能够提供足够的灵活性。 示例代码1-日志处理器 // 抽象处理器类 public abstract class Logger {public static int INFO 1;public static int DEBUG 2;public static int ERROR 3;protected int level;protected Logger nextLogger;public void setNextLogger(Logger nextLogger) {this.nextLogger nextLogger;}public void logMessage(int level, String message) {if (this.level level) {write(message);}if (nextLogger ! null) {nextLogger.logMessage(level, message);}}abstract protected void write(String message); }// 具体处理器实现 class ConsoleLogger extends Logger {public ConsoleLogger(int level) {this.level level;}Overrideprotected void write(String message) { System.out.println(Standard Console::Logger: message);} }// 客户端使用责任链 public class ChainPatternDemo {private static Logger getChainOfLoggers() {Logger errorLogger new ErrorLogger(Logger.ERROR);Logger fileLogger new FileLogger(Logger.DEBUG);Logger consoleLogger new ConsoleLogger(Logger.INFO);errorLogger.setNextLogger(fileLogger);fileLogger.setNextLogger(consoleLogger);return errorLogger;}public static void main(String[] args) {Logger loggerChain getChainOfLoggers();loggerChain.logMessage(Logger.INFO, This is an information.);loggerChain.logMessage(Logger.DEBUG, This is a debug level information.);loggerChain.logMessage(Logger.ERROR, This is an error information.);} }示例代码2-审批流程 // 抽象处理器 abstract class Approver {protected Approver successor;public void setSuccessor(Approver successor) {this.successor successor;}public abstract void processRequest(PurchaseRequest request); }// 具体处理器经理 class Manager extends Approver {public void processRequest(PurchaseRequest request) {if (request.getAmount() 1000) {System.out.println(Manager will approve the request of request.getAmount());} else if (successor ! null) {successor.processRequest(request);}} }// 具体处理器总监 class Director extends Approver {public void processRequest(PurchaseRequest request) {if (request.getAmount() 5000) {System.out.println(Director will approve the request of request.getAmount());} else if (successor ! null) {successor.processRequest(request);}} }// 具体处理器CEO class CEO extends Approver {public void processRequest(PurchaseRequest request) {if (request.getAmount() 10000) {System.out.println(CEO will approve the request of request.getAmount());} else {System.out.println(Request of request.getAmount() needs a board meeting!);}} }// 请求类 class PurchaseRequest {private double amount;public PurchaseRequest(double amount) {this.amount amount;}public double getAmount() {return amount;} }// 客户端代码 public class ChainOfResponsibilityDemo {public static void main(String[] args) {Approver manager new Manager();Approver director new Director();Approver ceo new CEO();manager.setSuccessor(director);director.setSuccessor(ceo);manager.processRequest(new PurchaseRequest(500));manager.processRequest(new PurchaseRequest(1500));manager.processRequest(new PurchaseRequest(5500));} }主要符合的设计原则 开闭原则Open-Closed Principle 责任链模式允许在不修改现有代码的情况下添加新的处理器。你可以添加新的处理类来扩展系统的功能而无需修改现有的处理链或客户端代码。因此系统对扩展是开放的但对修改是封闭的。 单一职责原则Single Responsibility Principle 在责任链模式中每个处理器只负责处理特定类型的请求。这符合单一职责原则因为每个处理器类只有一个理由发生变化——处理其特定的请求。 里氏替换原则Liskov Substitution Principle 责任链中的处理器通常遵循相同的接口。这意味着处理器的任何子类都可以替换其父类而不影响系统的行为。 在JDK中的应用 java.util.logging.Logger 在 java.util.logging 包中Logger 类使用责任链模式。日志消息可以在一个日志处理链中传递每个处理器如 ConsoleHandler, FileHandler决定是否处理日志消息并将消息传递到链中的下一个处理器。 Java Servlet Filters 在Java Servlet API中过滤器Filter使用责任链模式。请求和响应在多个过滤器之间传递每个过滤器可以独立地处理请求或响应或将其传递给链中的下一个过滤器。 javax.servlet.FilterChain FilterChain 是Servlet API的一部分它允许多个过滤器按顺序处理HTTP请求和响应。每个过滤器在链中都有机会处理请求和响应或将其传递给链上的下一个过滤器。 在Spring中的应用 Spring Security的过滤器链 在Spring Security中安全过滤器链是责任链模式的一个显著例子。请求通过一系列的安全过滤器每个过滤器执行特定的安全检查如认证、授权等。这些过滤器可以自定义和配置形成一个处理安全的责任链。 Spring Web的拦截器 在Spring MVC中拦截器Interceptor提供了一种在处理HTTP请求时插入自定义逻辑的机制。拦截器可以形成一个拦截器链每个拦截器按顺序执行处理请求或响应或将控制权传递给链中的下一个拦截器。 Spring AOP的通知链 在Spring的面向切面编程AOP中通知Advice可以被看作是责任链的一部分。不同的通知如前置通知、后置通知、环绕通知等可以按顺序应用于方法调用形成一个通知链。
http://www.hkea.cn/news/14415964/

相关文章:

  • 私人做网站建设为什么打不开建设银行网站
  • 博罗东莞网站建设网站建设咨询公司排名
  • 旅游电子商务网站的建设用wordpress搭建娱乐网
  • 高端手机网站平台计算机网络课程设计
  • 网站建设注意事项苏州网站搜索引擎优化
  • 织梦网站栏目是做什么用的wordpress进不去了
  • 珠海做网站公司有哪些网页创建网站
  • 医院网站建设价值和意义网站建设前端工程师岗位职责
  • 湖人排名最新沈阳网站推广优化公司
  • 专业做能源招聘的网站网站开发宣传语
  • 企业网站推广营销七色板网站建设
  • 中英版网站系统wordpress cas认证
  • 网站建站套餐c语言建设网站
  • 网站百度快照怎么做在线网站开发培训
  • 洛阳鼎和电力建设有限公司网站delphi xe10网站开发
  • 深圳网站建设建设北京建设工程信息网网站
  • 如何提高网站的转化率重庆网站网络推广推广
  • 网站需要第三方登录怎么做建设书法网站的主题是
  • 宝塔面板建设网站西安市城市建设管理局网站
  • 求个网站好人一生平安网站服务器配置参考指南
  • 宽带专家网站珠海网站建设招聘
  • 网站建设冒用身份信息做招聘网站公司
  • 我做的网站打开慢怎么处理专门做面条菜谱的网站
  • 织梦网站更改网站的导航北京做网站的开发公司
  • 网站开发可以学吗网站页面代码优化
  • 网站首页推广php网站开发linux
  • 百度小程序可以根据网站的要求做东方资产营销网站
  • 东莞企石做网站事业单位网站备案
  • 进下加强新闻宣传网站建设西部数码网站备案
  • php开源建站系统延安网站设计公司