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

凡科建站小程序深圳福田华丰大厦网站建设

凡科建站小程序,深圳福田华丰大厦网站建设,天元建设集团有限公司鹿腾,电视墙装修效果图2023新款责任链模式可以应用于多种场景,下面是几个不同场景的例子,每个例子都包括完整的代码。 示例1:日志处理系统 在日志处理系统中,日志消息可以根据其严重性(错误、警告、信息)被不同级别的日志处理器处理。 …

责任链模式可以应用于多种场景,下面是几个不同场景的例子,每个例子都包括完整的代码。

示例1:日志处理系统

在日志处理系统中,日志消息可以根据其严重性(错误、警告、信息)被不同级别的日志处理器处理。

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);}
}class ErrorLogger extends Logger {public ErrorLogger(int level) {this.level = level;}@Overrideprotected void write(String message) {System.err.println("Error Console::Logger: " + message);}
}class FileLogger extends Logger {public FileLogger(int level) {this.level = level;}@Overrideprotected void write(String message) {System.out.println("File::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 PaymentHandler {protected PaymentHandler successor;public void setSuccessor(PaymentHandler successor) {this.successor = successor;}public abstract void handlePayment(PaymentRequest request);
}class PaymentRequest {private double amount;public PaymentRequest(double amount) {this.amount = amount;}public double getAmount() {return amount;}
}class PaypalHandler extends PaymentHandler {@Overridepublic void handlePayment(PaymentRequest request) {if (request.getAmount() < 1000) {System.out.println("Paypal processed $" + request.getAmount());} else if (successor != null) {successor.handlePayment(request);}}
}class CreditCardHandler extends PaymentHandler {@Overridepublic void handlePayment(PaymentRequest request) {if (request.getAmount() < 5000) {System.out.println("Credit Card processed $" + request.getAmount());} else if (successor != null) {successor.handlePayment(request);}}
}class BankTransferHandler extends PaymentHandler {@Overridepublic void handlePayment(PaymentRequest request) {System.out.println("Bank Transfer processed $" + request.getAmount());}
}public class PaymentChainDemo {public static void main(String[] args) {PaymentHandler paypal = new PaypalHandler();PaymentHandler creditCard = new CreditCardHandler();PaymentHandler bankTransfer = new BankTransferHandler();paypal.setSuccessor(creditCard);creditCard.setSuccessor(bankTransfer);PaymentRequest request = new PaymentRequest(450);paypal.handlePayment(request);request = new PaymentRequest(1200);paypal.handlePayment(request);request = new PaymentRequest(6500);paypal.handlePayment(request);}
}

责任链模式在软件设计中非常通用,并且可以在许多不同的场景中找到应用。这些示例展示了责任链模式在处理具有不同处理级别或条件的请求时的灵活性和可扩展性。在实际应用中,责任链模式可以帮助我们创建更加模块化和可管理的代码,但也需要注意不要过度使用,避免不必要的复杂性。

http://www.yayakq.cn/news/829773/

相关文章:

  • 网络营销相关的资源网站宁津 做网站
  • 个人搭建网站教程莱芜亓家网站
  • 网站做百度百科的好处公司做网站需要哪些
  • 网页设计师个人网站wordpress后台logo
  • 一个专门做熊的网站辽宁省建设安全监督网网站
  • 孝感 网站建设做网站是什么课
  • 代发货网站系统建设如何建设网站视频教程
  • 手机网站制作大约多少钱镇江今天发布的新消息
  • 怎么用IP做网站地址企业商务网站建设
  • dz网站数据备份恢复美容医疗手机网站模板
  • 做地产网站跟老外做网站
  • 泰和县建设局网站阿里云WordPress一键安装
  • 织梦网站怎样做seops做网站效果图
  • 网站建设和维护管理预算个人网站做哪一种比较赚钱
  • 企业网站建设前期规划住房和城乡建设部
  • 怎么样才能找到网站后台网址目前什么编码做网站最好
  • 北京工商网站怎样把网站做成软件
  • 餐饮网站开发榆林市城乡建设规划局网站
  • 国外网站谷歌seo推广小型企业网站建设
  • 深圳网站设计兴田德润优惠吗建筑工程完工证明范本
  • 公司网站用个人备案可以佛山哪里做网站
  • 北京网站sem、seo网络营销出来做什么
  • 备案网站免网营销咨询公司收费标准
  • 怎么做个手机版的网站网站推广计划方法
  • dw做网站 如何设置转动wordpress获取当前文章标签
  • 公司网站设计策划案湘潭做网站价格优选磐石网络
  • 湛江手机网站建设苏州工程网站建设
  • 1级a做爰免费网站简书网站开发
  • 吉林省住房和城乡建设部网站建设招标网站
  • 做预算查价格的网站是哪个html网页制作动态效果