设计模式之 策略模式

一、定义

策略模式(Strategy Pattern)

针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

二、分析

  • 策略模式主要针对的是一组可以相互替换的算法,我们单独把这些算法封装起来,让他们实现同一个接口,在使用策略时传入实现的接口类,这样我们删除和添加策略时就不用修改到客户端。

  • 在策略模式中,策略是由客户端决定的,这要求这些可以替换的策略必须是公开的,客户端也需要知道具体有哪些策略。

  • 策略模式和状态模式原理一致,只是他们的注重点不同,状态模式主要是切换状态以达到执行不同的行为,而策略模式则是针对一组可以替换的算法。

  • 如果在一个类中,某个行为存在多种实现的方式,并且这些方式可以相互替换,这时我们就可以使用策略模式。

三、类图

策略模式类图

四、使用场景

  • 系统需要动态的在几种算法中选择一种;

  • 类中使用了复杂条件运算符以在同一算法的不同变体中切换;

  • 如果算法在上下文的逻辑中不是特别重要,使用该模式能将类的业务逻辑与其算法实现细节隔离开来。

五、代码实现

我们在买房时需要在进行贷款,银行一般有2种还款方式分别是 等额本息等额本金 ,我们可以根据实际需求选择还款的方法。

下面我们使用策略模式来模拟这两种还款方式。

源码:gitee地址(点击跳转)

原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
原文地址:https://www.cnblogs.com/lixingwu/p/14412988.html