设计模式之 Strategy(策略模式)

简介: 设计模式之 Strategy(策略模式)

设计模式之 Strategy(策略模式)

Strategy 策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.关键词独立

策略模式原理图

代码实现

先省略

总结

  1. 首先通过抽象类或者接口的方式定义出共性的方法进行抽象封装
  2. 然后通过继承或者实现的方式对抽象的方法进行重写或者重载
  3. 最终是通过一个单独的上下文类进行调用,需要注意的是上下文类中主要是使用一个有参构造器建立起与抽象类(接口)的关系引用,并进行使用具体的方法
  4. 为了进行升级可以将策略模式和简单工厂一起使用

特点

目录
相关文章
|
3月前
|
设计模式 算法
策略模式-大话设计模式
策略模式-大话设计模式
18 0
|
4月前
|
设计模式 算法 Java
Java一分钟之-设计模式:策略模式与模板方法
【5月更文挑战第17天】本文介绍了策略模式和模板方法模式,两种行为设计模式用于处理算法变化和代码复用。策略模式封装不同算法,允许客户独立于具体策略进行选择,但需注意选择复杂度和过度设计。模板方法模式定义算法骨架,延迟部分步骤给子类实现,但过度抽象或滥用继承可能导致问题。代码示例展示了两种模式的应用。根据场景选择合适模式,以保持代码清晰和可维护。
57 1
|
1天前
|
设计模式 缓存 算法
揭秘策略模式:如何用Java设计模式轻松切换算法?
【8月更文挑战第30天】设计模式是解决软件开发中特定问题的可重用方案。其中,策略模式是一种常用的行为型模式,允许在运行时选择算法行为。它通过定义一系列可互换的算法来封装具体的实现,使算法的变化与客户端分离。例如,在电商系统中,可以通过定义 `DiscountStrategy` 接口和多种折扣策略类(如 `FidelityDiscount`、`BulkDiscount` 和 `NoDiscount`),在运行时动态切换不同的折扣逻辑。这样,`ShoppingCart` 类无需关心具体折扣计算细节,只需设置不同的策略即可实现灵活的价格计算,符合开闭原则并提高代码的可维护性和扩展性。
|
5天前
|
设计模式 算法 开发者
深入理解工厂模式与策略模式:设计模式的灵活应用
深入理解工厂模式与策略模式:设计模式的灵活应用
|
26天前
|
设计模式 算法 C#
C#设计模式之策略模式
C#设计模式之策略模式
70 19
|
12天前
|
设计模式 算法 Java
【十六】设计模式~~~行为型模式~~~策略模式(Java)
文章详细介绍了策略模式(Strategy Pattern),这是一种对象行为型模式,用于定义一系列算法,将每个算法封装起来,并使它们可以相互替换。策略模式让算法独立于使用它的客户而变化,提高了系统的灵活性和可扩展性。通过电影院售票系统中不同类型用户的打折策略案例,展示了策略模式的动机、定义、结构、优点、缺点以及适用场景,并提供了Java代码实现和测试结果。
【十六】设计模式~~~行为型模式~~~策略模式(Java)
|
4月前
|
设计模式 算法 Java
小谈设计模式(3)—策略模式
小谈设计模式(3)—策略模式
|
24天前
|
设计模式 算法 测试技术
[设计模式]行为型模式-策略模式
[设计模式]行为型模式-策略模式
|
2月前
|
设计模式 JavaScript 算法
js设计模式【详解】—— 策略模式
js设计模式【详解】—— 策略模式
30 0
|
3月前
|
设计模式 算法
行为设计模式之策略模式
行为设计模式之策略模式