This repository has been archived on 2021-09-07. You can view files and clone it, but cannot push or open issues or pull requests.
2018-12-14 14:38:12 +08:00

1.1 KiB
Raw Blame History

策略模式

定义

wiki: 策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法.

特点:

  • 定义了一族算法(业务规则)
  • 封装了每个算法
  • 这族的算法可互换代替interchangeable

策略模式,和其他设计模式的优点相同,都是为了解耦。 可以让客户端自行选择某一行为要使用的策略,我们可以针对不同的情况,来使用不同的策略(方式不同,但是目的相同,这也是第三个特点,算法族中的算法可互相替换)。

类图

(图源百度百科)

由一个策略接口,从接口延伸出一个策略族,由上下文Context来调用策略族中的具体策略

举个栗子