设计模式-策略模式-使用

设计模式-策略模式-CSDN博客

  1. 系统中有很多类,它们之间的区别仅在于它们的行为。策略模式可以定义一系列的算法,并将它们一个个封装起来,使它们可以相互替换。这样,算法就可以独立于使用它的客户而变化。
  2. 需要使用算法的不同变体。当算法有多种实现方式,并且需要根据不同的情况选择使用不同的算法时,可以使用策略模式。
  3. 算法使用客户不应该知道的数据。策略模式可以避免暴露复杂的、与算法相关的数据结构,保证算法的安全性和封装性。
  4. 一个类定义了多种行为,并且这些行为在类的操作中以多个条件语句的形式出现。使用策略模式可以避免使用大量的if-else语句,提高代码的可读性和可维护性。

具体来说,策略模式在以下场景中得到了广泛的应用:

  1. 计费系统:对于不同用户类型和消费金额,系统可以采用不同的计费方式。通过策略模式,可以定义不同的计费策略,并在运行时根据需要选择合适的策略。
  2. 游戏开发中的角色技能系统:不同角色拥有不同的技能,游戏可以根据角色选择相应的技能进行攻击或防御。策略模式可以定义不同的技能策略,并在游戏中根据需要动态切换。
  3. 商城促销活动:商城可以根据不同的促销活动采取不同的优惠方式,如打折、满减等。通过策略模式,可以定义不同的促销策略,并在促销活动中动态应用。

与简单工厂模式的区别主要体现在以下几个方面:

  1. 核心思想不同:简单工厂模式的核心是创建对象,它将所有对象的创建逻辑集中在一个工厂类中。而策略模式的核心是定义一系列可互相替换的算法,它关注的是算法的使用和切换。
  2. 关注点不同:简单工厂模式关注的是对象的创建过程,它将对象的创建与使用分离开来,简化了对象的创建过程。而策略模式关注的是如何使用这些对象,特别是如何根据不同的条件选择合适的算法或策略。
  3. 灵活性不同:简单工厂模式在添加新的对象类型时需要修改工厂类的方法,这违反了设计模式中的开闭原则(OCP)。而策略模式则通过定义接口和策略类来实现算法的多样性,可以在不修改已有代码的情况下添加新的策略。
  4. 代码结构不同:简单工厂模式通常包含一个工厂类和一个或多个产品类,工厂类负责创建产品类的实例。而策略模式则包含策略接口、具体策略类、上下文环境和客户端等部分,策略接口定义了一系列算法的公共接口,具体策略类实现了这些接口中的算法,上下文环境负责根据条件选择合适的策略,并将其应用于客户端。

相关推荐

  1. 设计模式-策略模式-使用

    2024-05-25 18:44:22       13 阅读
  2. 设计模式——策略模式

    2024-05-25 18:44:22       29 阅读
  3. 设计模式-策略模式

    2024-05-25 18:44:22       36 阅读
  4. 设计模式——策略模式

    2024-05-25 18:44:22       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-25 18:44:22       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-25 18:44:22       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-25 18:44:22       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-25 18:44:22       18 阅读

热门阅读

  1. 【Python爬虫】案例_斗鱼

    2024-05-25 18:44:22       12 阅读
  2. 【Linux+Docker】修改Docker容器中的hosts文件

    2024-05-25 18:44:22       12 阅读
  3. GPT-3:自然语言处理的预训练模型

    2024-05-25 18:44:22       10 阅读
  4. 语言模型的发展

    2024-05-25 18:44:22       11 阅读
  5. Android实现二维码扫描自定义扫描界面

    2024-05-25 18:44:22       8 阅读
  6. pytorch学习(四):Dataloader使用

    2024-05-25 18:44:22       13 阅读
  7. torchdata pytorch2.3 报错

    2024-05-25 18:44:22       8 阅读