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

交互式网站环球资源网站网址

交互式网站,环球资源网站网址,企业采购平台有哪几个知名,快速网站1. 什么是策略模式 策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户端,客户端中的具体实现只需要了解上下文类。 2. 由什么组成 策略接口&…

1. 什么是策略模式

策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户端,客户端中的具体实现只需要了解上下文类。

2. 由什么组成

  1. 策略接口(Strategy):定义所有支持的算法的公共接口,也就抽象接口
  2. 具体策略类(Concrete Strategy):实现策略接口的具体算法
  3. 上下文类(Context):持有一个策略对象的引用,通过策略接口与具体策略交互

3. 怎么实现

// 1. 策略接口
interface PaymentStrategy {void pay(int amount);
}// 2. 具体策略类
class CreditCardPayment implements PaymentStrategy {private String cardNumber;public CreditCardPayment(String cardNumber) {this.cardNumber = cardNumber;}@Overridepublic void pay(int amount) {System.out.println("使用信用卡支付 " + amount + " 元,卡号:" + cardNumber);}
}class AlipayPayment implements PaymentStrategy {private String account;public AlipayPayment(String account) {this.account = account;}@Overridepublic void pay(int amount) {System.out.println("使用支付宝支付 " + amount + " 元,账户:" + account);}
}// 3. 上下文类
class ShoppingCart {private PaymentStrategy paymentStrategy;public void setPaymentStrategy(PaymentStrategy strategy) {this.paymentStrategy = strategy;}public void checkout(int amount) {paymentStrategy.pay(amount);}
}// 4. 客户端使用
public class Client {public static void main(String[] args) {ShoppingCart cart = new ShoppingCart();// 使用信用卡支付cart.setPaymentStrategy(new CreditCardPayment("1234-5678-9012-3456"));cart.checkout(1000);// 切换为支付宝支付cart.setPaymentStrategy(new AlipayPayment("example@alipay.com"));cart.checkout(500);}
}

4. 应用的场景

比较常见的支付业务,需要根据具体的选择具体的支付方式

商品的不同折扣策略

压缩工具的压缩算法的选择

游戏角色的不同攻击策略

5. 优点和缺点

5.1. 优点

  • 松耦合:策略模式将不同的策略封装在独立的类中,与上下文对象解耦,增加了代码的灵活性和可维护性。
  • 易于扩展:可以通过添加新的策略类来扩展系统的功能,无需修改现有代码。
  • 符合开闭原则:对于新的策略,无需修改上下文对象,只需要实现新的策略接口即可

5.2. 缺点

  • 类数量增多:每个具体策略都需要一个独立的类,如果策略较多,将导致类的数量增加。
  • 上层必须知道所有策略类:客户端必须知道有哪些策略,并选择合适的策略进行使用,也就是说客户端必须对策略有一个详细的了解。
http://www.dtcms.com/wzjs/78881.html

相关文章:

  • 多域名网站今天今日新闻头条最新消息
  • 有什么电商网站做推广赚佣金的重庆网站外包
  • seo爱站网外贸网站制作
  • 公司网站标题优化百度助手官网
  • 网站建设服务器租用多少钱百度公司排名
  • 建网站怎么挣钱的快速网站推广公司
  • 在家做的网站编辑seo从0到1怎么做
  • 建站宝盒v8破解版下载保定seo推广外包
  • 超市如何建立网站网络销售平台有哪些软件
  • wordpress dplayer深圳aso优化
  • wordpress font廊坊关键词排名优化
  • 胶州网站制作百度seo培训课程
  • 做金属探测门批发网站免费广告发布平台app
  • 潍坊建设部门管理网站企业营销策划及推广
  • 百度网站优化指南爱站网seo培训
  • 如何做垂直网站广告网
  • wordpress站内全文检索win7优化软件
  • 代理记账网站怎么做关键seo排名点击软件
  • 网站中捕获鼠标位置百度网页版链接
  • 网站设计有限公司怎么样优秀网站设计
  • 网站网页建设与维护商业软文案例
  • 厦门网站建设 软件园青岛自动seo
  • 做网站去哪里找网络营销策划书的范文
  • 在演示文稿上网站怎么做上海网络推广公司
  • 网络公司做网站价格营销网站定制
  • 顺德网站建设公司价位中国今天新闻最新消息
  • 网站建设需要多少钱做销售最挣钱的10个行业
  • 上海web网站建设北京百度关键词排名
  • 一个网站如何做盈利网络营销案例分析论文
  • 益保网做推广网站吗合肥seo推广培训班