[关闭]
@coder-pig 2017-03-06T12:10:57.000000Z 字数 620 阅读 1801

如何让孩子爱上设计模式 ——14.策略模式(Strategy Pattern)

设计模式初涉


描述性文字

本节讲解的是行为型设计模式中的第一个模式: 策略模式
这个模式非常简单,也很好理解。
定义一系列的算法,把每个算法封装起来,并使得他们可以相互替换
让算法独立于使用它的客户而变化
一般用来替换if-else,个人感觉是面向过程与面向对象思想的
过渡,这里举个简易计算器的栗子,帮助理解~


普通的if-else/switch计算器

普通的面向过程if-else简易计算器代码如下:

运行结果如下:

这里我们也可以改成switch,代码显得简洁一些,但也是换汤不换药


策略模式实现简易计算器

其实就是把if-else涉及到的算法,策略行为抽取出来,统一的接口,
然后各自实现,比如这里我们把抽取计算的接口,然后继承分别实现
加减乘除:

编写上下文对象负责与具体的策略类交互

客户端调用

输出结果

好了,这就是最简单的策略模式的栗子了,面向对象的if-else到
面向过程的策略模式,算法可以独立于使用它的用户而变化,比如
这里我们加多一个求余也非常简单。


概念相关

定义

定义一系列算法,将每一个算法封装起来,并让它们可以相互替换;
策略模式让算法独立于使用它的客户而变化

三个角色

UML类图

应用场景

优缺点


本节代码:


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注