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

赶集网网站建设ppt模板沈阳网络关键词排名

赶集网网站建设ppt模板,沈阳网络关键词排名,关于做网站的书籍,wordpress建博客网站设计模式-责任链模式 前言责任链简历案例代码小结 前言 我们知道,设计模式是面试时经常被问到的问题之一,这是因为设计模式能够体现出代码设计的美感,且在很多框架的底层也都会使用到各种设计模式,所以对设计模式的考察&#xff…

设计模式-责任链模式

    • 前言
    • 责任链简历
    • 案例代码
    • 小结

前言

我们知道,设计模式是面试时经常被问到的问题之一,这是因为设计模式能够体现出代码设计的美感,且在很多框架的底层也都会使用到各种设计模式,所以对设计模式的考察,就成了面试时的一个重点。

目前比较流行的有23种设计模式,但如果我们想全都记住,难度确实比较大,不过我们可以通过学习框架中常用的设计模式,来提升自己的代码设计能力和面试水平,比如常见的单例模式、工厂模式、代理模式、适配器模式、观察者模式和责任链模式等。今天这篇文章,老朱就来给大家讲讲责任链设计模式,希望本文可以让大家掌握一种常用的设计模式。


责任链简历

在软件开发中,责任链模式常用于将复杂的业务逻辑拆分为多个小模块,每个模块负责处理其中一部分逻辑,并将剩余的请求传递给下一个模块。这种设计方式可以提高代码的可维护性和可扩展性,也可以更好地解耦各个模块之间的依赖。这么说估计大家会觉得很空洞,没有落地感,老朱先来给大家举两个案例。

比如我们很熟悉的电商网站,假如有一个订单处理流程,一个订单可能需要经过多个处理器来进行处理,包括库存检查、价格计算、优惠券使用等等。如果其中一个处理器无法处理该订单,则将请求传递给下一个处理器,直到所有处理器都处理完成或有一个处理器能够处理该订单为止。


再比如线申请贷款的系统,系统需要根据用户的个人信息来决定是否批准贷款。我们可以将这个业务逻辑拆分为多个小模块,例如根据用户的信用评级、收入、负债等信息来做出判断。这些模块可以构成一个责任链,每个模块都有机会来处理请求,如果一个模块无法处理请求,它就会将请求传递给下一个模块。

另外我们Web中的Filter以及SpringMVC的Interceptor也都采用了责任链设计模式,其实只要你用心琢磨,就会发现很多业务场景中都可以使用该模式,接下来老朱就以申请放贷这个案例来给大家讲讲责任链模式的使用。

案例代码

首先我们来定义一个抽象的接口,代码如下:

public interface LoanHandler {//处理器核心处理业务boolean approveLoan(LoanApplication application);//指定下一个处理器void setNextHandler(LoanHandler nextHandler);
}

接下来我们分别定义信用评级处理器、收入评估处理器,代码分别如下:

public class CreditRatingHandler implements LoanHandler {private LoanHandler nextHandler;public boolean approveLoan(LoanApplication application) {if (application.getCreditRating() > 750) {return true;} else {return nextHandler.approveLoan(application);}}public void setNextHandler(LoanHandler nextHandler) {this.nextHandler = nextHandler;}
}
public class IncomeHandler implements LoanHandler {private LoanHandler nextHandler;public boolean approveLoan(LoanApplication application) {if (application.getIncome() > 50000) {return true;} else {return nextHandler.approveLoan(application);}}public void setNextHandler(LoanHandler nextHandler) {this.nextHandler = nextHandler;}
}

在这个例子中,CreditRatingHandler会根据用户的信用评级来判断是否批准贷款,如果信用评级大于750,则批准贷款,否则将请求传递给下一个模块。

而IncomeHandler会根据用户的收入来判断是否批准贷款,如果收入大于50000,则批准贷款,否则将请求传递给下一个模块。每个模块都有一个可选的nextHandler参数,表示链上的下一个模块。

最后我们通过使用下面的代码来测试这个责任链:

public static void main(String[] args) {LoanApplication application = new LoanApplication("John Doe", 700, 40000, 10000);LoanHandler handler1 = new CreditRatingHandler();LoanHandler handler2 = new IncomeHandler();handler1.setNextHandler(handler2);if (handler1.approveLoan(application)) {System.out.println("Loan approved.");} else {System.out.println("Loan denied.");}
}

在这个例子中,我们只是使用了简单的输出语句来模拟处理器的批准或拒绝操作。而在实际应用中,我们可能需要与外部系统进行交互,或者根据更复杂的业务逻辑进行判断。

小结

总之,责任链模式是一种非常灵活和可扩展的设计模式,在许多实际应用中都有广泛的应用价值。通过将多个处理器链接在一起,并按照特定的顺序进行处理,责任链模式可以帮助我们实现复杂的业务逻辑,提高系统的可维护性和可扩展性。


在这里插入图片描述
             Periodic Comet Swift-Tuttle
             Image Credit & Copyright: Gerald Rhemann

Aug. 8, 2024

Explanation: A Halley-type comet with an orbital period of about 133 years, Comet 109P/Swift-Tuttle is recognized as the parent of the annual Perseid Meteor Shower. The comet’s last visit to the inner Solar System was in 1992. Then, it did not become easily visible to the naked eye, but it did become bright enough to see from most locations with binoculars and small telescopes. This stunning color image of Swift-Tuttle’s greenish coma, long ion tail and dust tail was recorded using film on November 24, 1992. That was about 16 days after the large periodic comet’s closest approach to Earth. Comet Swift-Tuttle is expected to next make an impressive appearance in night skies in 2126. Meanwhile, dusty cometary debris left along the orbit of Swift-Tuttle will continue to be swept up creating planet Earth’s best-known July and August meteor shower.


http://www.ho-use.cn/article/1211.html

相关文章:

  • 如何提升做网站的效率seo优化专员招聘
  • php前台网站开发拉新充场app推广平台
  • web开发做电商网站的全过程企业搜索引擎优化
  • 福州网站公司沈阳网站制作
  • 小型网站建设2023年适合小学生的新闻有哪些
  • 北京建设网站公司厂房网络推广平台
  • 百度云域名网站seo推广公司靠谱吗
  • 河北省企业信用信息查询公示系统seo流量的提升的软件
  • 做cpa广告网站教程站内优化包括哪些
  • 租房网站开发功能需求电商产品推广方案
  • 潍坊做网站的那家好seo咨询顾问
  • 地方网站用什么域名站长之家seo查找
  • 苹果电脑做网站设计百度信息流开户多少钱
  • 如何做好网站建设和宣传国际新闻界
  • 佛山网站建设专业品牌怎么把产品快速宣传并推广
  • wordpress 预加载动画seo营销优化软件
  • 便宜网站建设哪家好今日十大热点新闻头条
  • b2b网站制作平台seo品牌
  • 做炫舞情侣头像动态图网站优化资讯
  • 天津网站开发公司电话太原网站制作推广
  • 江山有做网站开发吗360网站推广客服电话
  • 怎样做网站后台运营seo搜索优化网站推广排名
  • 阳江市住房和城乡规划建设局网站网络营销推广方案论文
  • 湘潭做网站公司选择封象网做网站公司营销策划思路及方案
  • 网站开发外包合同模板网站制作公司官网
  • getoption wordpress网站优化怎么做
  • 淘宝网站备案长沙哪家网络公司做网站好
  • 北京企业网站建设公司宁波seo排名外包
  • 小米路由 做网站免费网站推广网站短视频
  • 网站模板 茶叶响应式海外免费网站推广