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

色目人网络seo外包

色目人,网络seo外包,wordpress备份百度云,办理营业执照需要什么材料typescript中的策略模式 当我们需要以整洁、易于维护和易于调试的方式构建应用程序时,使用设计模式是一种非常好的方式。 在本文中,我们的目标是阐明如何将策略模式无缝地集成到我们的应用程序中。如果我们熟悉依赖性注入,可能会发现策略模…

typescript中的策略模式

当我们需要以整洁、易于维护和易于调试的方式构建应用程序时,使用设计模式是一种非常好的方式。

在本文中,我们的目标是阐明如何将策略模式无缝地集成到我们的应用程序中。如果我们熟悉依赖性注入,可能会发现策略模式的操作原理与其有些相似,尽管它有自己独特的用例。

到本文结束时,我们应该能够掌握了策略模式背后的基本概念。

让我们通过建立一个定义来深入研究策略模式究竟是什么?

策略模式

策略模式是一种设计模式,它使我们能够在运行时切换算法或策略,而不改变使用它们的代码。从本质上讲,它涉及定义一系列算法,封装每个算法,并使它们可以互换。这带来了灵活性,通过将行为( 算法 / 策略 )与使用它的上下文( 类 )分离,实现了更整洁、解耦的代码。

一个现实的例子

想象一下我们正在旅行,需要导航到不同的地方。我们的手机就像一个使用策略模式的应用程序。导航应用程序是工具箱,不同的交通方式,如驾驶、步行或骑自行车,就是策略。根据我们的需要,可以很容易地在这些模式之间切换,而不改变导航应用程序本身。同样,这种策略模式可以让我们的代码轻松地在不同的算法或行为之间切换。

代码示例

现在,让我们用 typescript 实现一个付款系统。想象一下,我们正在建立一个在线商店,它支持微信、支付宝等不同的支付方式。使用这种策略模式,我们可以很容易地在这些支付方法之间转换。这种策略模式非常适合这种情况。

首先,定义一个表示支付策略的接口:

interface PaymentStrategy {processPayment(amount: number): void;
}

现在,实现具体的策略:

class WeiXinStrategy implements PaymentStrategy {processPayment(amount: number): void {console.log(`Paid ${amount} using WeiXin.`);}
}class ZhiFuBaoStrategy implements PaymentStrategy {processPayment(amount: number): void {console.log(`Paid ${amount} using ZhiFuBao.`);}
}class CreditCardStrategy implements PaymentStrategy {processPayment(amount: number): void {console.log(`Paid ${amount} using CreditCard.`);}
}

创建一个上下文类,在线存储,以使用这些支付策略:

class OnlineStore {private paymentStrategy: PaymentStrategy;constructor(paymentStrategy: PaymentStrategy) {this.paymentStrategy = paymentStrategy;}checkout(amount: number): void {this.paymentStrategy.processPayment(amount);}
}

最后,让我们看看使用不同方法付款的策略模式:

const weixin = new WeiXinStrategy();
const storeWithPayPal = new OnlineStore(paypal);
storeWithPayPal.checkout(100); // "Paid 100 using WeiXin."const creditCard = new CreditCardStrategy();
const storeWithCreditCard = new OnlineStore(creditCard);
storeWithCreditCard.checkout(200); // Outputs: "Paid 200 using CreditCard."const zhifubao = new ZhiFuBaoStrategy();
const storeWithBitcoin = new OnlineStore(bitcoin);
storeWithBitcoin.checkout(300); // Outputs: "Paid 300 using ZhiFuBao."

就像改变导航模式一样,在这里我们可以轻松地交换支付选项,而不需要修改在线存储类本身。

使付款系统形象化

在我们结束之前,让我们用绘图来想象支付的例子。

在下面的插图中,我们将观察右侧的 Payment 接口。这一接口发挥了至关重要的作用,要求 processPayment方法由不同的支付策略选项实施。在我们的例子中的 weixin 、zhifubao、creditcard 是实现这一接口的具体策略,因此每个都需要定义 processPayment 方法的工作原理。

在这里插入图片描述

图的左边是 OnlineStore,它使用这些支付策略,而不了解其内部运作。这种封装是策略模式的优点之一–无论支付选择如何,对"在线商店"来说,最终的支付流程都是一样的。之所以能保持这种一致性,是因为所有付款策略都遵守 PaymentStrategy 接口所定义的方法。

总结

我们引入了不同的支付选项,使它们可以轻松地切换,而不必担心所有支付策略之间的兼容性。该接口确保所有支付方法坚持一个共同的定义,保证平稳的集成。

理解和实现策略模式可以极大地提高代码的适应性和可维护性,特别是在行为或算法可能改变或扩展的情况下。

http://www.khdw.cn/news/56381.html

相关文章:

  • 无锡网站设怎么查网站是不是正规
  • 顺德大良网站建设开发seo网站优化专家
  • 做网站都需要买什么营销模式有哪些
  • dede新闻网站源码带采集广告软文营销平台
  • 泵网站建设网页游戏
  • 快速做课件的网站做推广网络
  • 在国外做网站百度网站收录提交
  • 用jsp做的简单网站代码seo推广培训资料
  • 中信建设有限责任公司集采seo外链推广工具
  • 大宗交易平台百度seo查询系统
  • wordpress地址和站点地址错公司网站设计定制
  • 新闻写作网站直通车关键词优化
  • 自己做流媒体网站难青岛网页搜索排名提升
  • wordpress.重装seo效果分析
  • 福建省两学一做网站怎样制作一个网站
  • 荆门建网站费用2022年五月份热点事件
  • 建设网站的计划表营销型网站建设公司
  • wordpress替换google字体上海网站seoseodian
  • 日本一级做a爰网站短链接生成
  • 开发wap网站 转湖南优化公司
  • 网站官网域名服务费新闻头条今日新闻60条
  • 做网站前需要做什么准备北京网站优化常识
  • 网站建设日语怎么说bt搜索引擎下载
  • 新闻网站寄生虫怎么做广告软文代理平台
  • wordpress如何清缓存苏州搜索引擎排名优化商家
  • 万网网站备案产品验证未找到该域名授权信息关键词上首页的有效方法
  • 建网站需要多少资金互联网营销平台有哪些
  • 十元精品店做网站可以发布推广引流的悬赏平台
  • 协会网站制作个人网站设计模板
  • 做网站有哪些西安市seo排名按天优化