设计模式之策略模式

  1. 策略模式的作用

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。

  1. 为什么要使用策略模式?

我们想象一下最常见的场景:排序。排序无非两种选择,升序或降序。如果我们要封装一个类要自由的切换两种排序要怎么做呢?

最常见的做法是这样的:

我们可以发现这要的代码极不美观,而且这还是只有两种情况的时候,加入有N中情况那岂不是要写很多的判断。甚至可能大多数时候我们并不能提前想好所有的类型,如果临时要加入新的算法只能再次修改原来的代码。维护很困难。这时候我们就可以使用策略模式来实现。

  1. 怎么使用策略模式?

以上述排序为例,在java中我们需要实现自己的比较器。

如此,当我们在需要定义新的排序规则(因为排序的对象可能是多种多样的),当我们需要一个新的规则时,我们不需要去修改Collections.sort()方法的内容,而是实现一个自己的比较器,这样就可以实现新的排序。

  1. 分析一下策略模式是怎么构成的?

我们同样以上述排序为例:

(1)策略接口

(2)不同的实现

(3)调用者中(其中一个

Original: https://www.cnblogs.com/liwangcai/p/11872874.html
Author: 神奇海螺。
Title: 设计模式之策略模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574172/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球