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

定制公交app下载seo关键词有哪些类型

定制公交app下载,seo关键词有哪些类型,网站建设学多久,宁波建设协会网站策略(Strategy)模式属于行为型模式的一种。 策略模式的核心思想是定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式让算法独立于使用它的客户而变化,从而实现了算法族的独立扩展和替换。 策略模式指在…

策略(Strategy)模式属于行为型模式的一种。

策略模式的核心思想是定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式让算法独立于使用它的客户而变化,从而实现了算法族的独立扩展和替换。

策略模式指在一个方法中,某些关键步骤的算法依赖调用方传入的策略,传入不同的策略,即可获得不同的结果,大大增强了系统的灵活性。

策略模式的核心思想是在一个计算方法中把容易变化的算法抽出来作为“策略”参数传进去,如果新增策略的话,则不必修改原有逻辑。

策略模式适用于以下场景:

  • 当系统中存在多个相似的算法或行为,并且需要在运行时根据条件进行选择时。
  • 当需要在不同的业务场景下灵活地替换算法,而不影响系统的整体结构时。
  • 当多个类仅在算法或行为上有所不同,使用策略模式可以将它们的变化部分提取出来,避免代码重复。

策略模式通常有以下组成部分: 

  • 策略接口(Strategy):定义一个公共接口,声明所有具体策略类必须实现的方法。
  • 具体策略类(ConcreteStrategy):实现策略接口,封装具体的算法或业务逻辑。每个具体策略代表一种算法实现。
  • 上下文(Context):维护一个策略对象的引用,客户端通过上下文来调用策略对象的方法,从而实现行为的切换。

我们模拟实现一个支付方式的选择功能,不同的支付方式(如信用卡支付和PayPal支付)封装为不同的策略。

1、策略接口:定义支付算法

// 策略接口:定义支付算法
public interface PaymentStrategy {void pay(int amount);
}

2、具体策略类

// 具体策略类1:信用卡支付
public class CreditCardPaymentStrategy implements PaymentStrategy {private String cardNumber;public CreditCardPaymentStrategy(String cardNumber) {this.cardNumber = cardNumber;}@Overridepublic void pay(int amount) {System.out.println("Using Credit Card (" + cardNumber + ") to pay " + amount + " dollars.");}
}// 具体策略类2:PayPal支付
public class PaypalPaymentStrategy implements PaymentStrategy {private String email;public PaypalPaymentStrategy(String email) {this.email = email;}@Overridepublic void pay(int amount) {System.out.println("Using PayPal (" + email + ") to pay " + amount + " dollars.");}
}

3、上下文类:购物车(或支付环境)

// 上下文类:购物车(或支付环境)
public class ShoppingCart {// 持有一个策略对象private PaymentStrategy paymentStrategy;// 设置策略(可在运行时动态切换)public void setPaymentStrategy(PaymentStrategy paymentStrategy) {this.paymentStrategy = paymentStrategy;}// 结账时调用支付策略public void checkout(int amount) {if (paymentStrategy == null) {throw new IllegalStateException("Payment strategy not set.");}paymentStrategy.pay(amount);}
}

4、客户端

// 客户端代码
public class StrategyPatternDemo {public static void main(String[] args) {ShoppingCart cart = new ShoppingCart();// 使用信用卡支付cart.setPaymentStrategy(new CreditCardPaymentStrategy("1234-5678-9012-3456"));cart.checkout(150);// 切换为PayPal支付cart.setPaymentStrategy(new PaypalPaymentStrategy("user@example.com"));cart.checkout(250);}
}

策略模式的优缺点

优点:

  • 灵活性高:策略模式允许在运行时更换算法,实现了算法的动态切换。
  • 封装变化:将变化的算法封装在独立的策略类中,遵循了单一职责原则和开闭原则。
  • 消除条件判断:避免了大量的条件判断语句,使代码结构更加清晰。

缺点:

  • 类的数量增加:每个策略都需要一个单独的类,当算法较多时,可能会导致类的数量增加。
  • 客户端必须知道所有策略:有时客户端需要了解不同策略的细节,并在合适的时机选择合适的策略,这可能会增加系统的复杂性。

装饰模式可以更改对象的外表,策略模式则能够改变其本质。

策略模式通过将算法封装在独立的策略类中,并在运行时动态选择算法,提供了一种灵活、可扩展的解决方案,能够有效地消除冗长的条件语句,提高系统的可维护性和扩展性。熟练掌握策略模式不仅可以优化代码结构,还可以应对复杂业务场景下的算法替换问题。

人生一切所谓的苦难,都是比较而言。-- 烟沙九洲

http://www.dtcms.com/wzjs/42150.html

相关文章:

  • 自建网站经营者例子长春百度推广电话
  • 武汉公司注册地址变更流程seo建站是什么
  • 推广引流违法吗网站关键词排名优化
  • 如何用腾讯云做网站鱼头seo软件
  • 深圳网站公司推广平台搜索网站有哪些
  • 网站备案如何注销学市场营销后悔死了
  • 网站顶部flash百度今日数据
  • 为加强政协网站建设微信营销的特点
  • 潜江建设网站洛阳seo博客
  • 站长工具排名查询360优化大师下载官网
  • 怎么从零开始做网站曹操seo博客
  • 驻马店手机网站制作免费网站怎么注册
  • 企业网站的在线推广方法有哪几种线上宣传推广方案
  • 网站维护的具体问题seo推广价格
  • 北京最大网站建设公司排名怎么做营销推广方案
  • 模板网站的弊端优化搜狗排名
  • 微信公众号是在哪个网站做的培训机构在哪个平台找
  • 如何在网站上做背景图片怎么做百度搜题
  • 网站搭建靠谱公司游戏推广公司靠谱吗
  • 做会员卡的网站在线地推
  • 文山知名网站建设报价google关键词规划师
  • 网站建站那个好百度提交入口网址截图
  • 网站分析 案例外包公司值得去吗
  • 电子网站建设设计我为什么不建议年轻人做运营
  • 网站里的聊天怎么做的2023网站seo
  • 北京网站空间seo搜索优化
  • 英文网站建设用哪种字体百度公司招聘官网
  • 网站空间独立ip网站模板价格
  • 深圳高端电商网站建设者巨量关键词搜索查询
  • 做一个网站大概要多少钱网站是怎么优化的