设计模式学习之路——策略模式
2015-08-16 20:49
260 查看
首先了解一下策略模式的定义,来源于百度百科:
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
主要的含义是指将每一个方法封装起来,让调用方选择具体需要使用的方法。
首先定义一个场景,还是出门旅行,小明出门旅游,从A市到B市,有飞机、大巴和火车三种出行方式。
代码实现
Code
分析一下实现方式,首先定义一个抽象的旅行类,类中有一个获得旅行方式的抽象方法,接下来只要定义具体的类,继承旅行的抽象类然后重写方法。在外层将具体的旅游类封装起来,为外层提供一个公开的方法即可。
使用策略模式,可以方便的修改每一个方法而不用担心会对其他方法造成影响,降低类与类之间的耦合。
一般来说策略模式会和工厂方法一同使用,外部调用时通过工厂模式实例化具体的类,然后通过策略模式获取最终的结果。
以上就是对策略模式的一些个人总结和看法,欢迎其他同学为文中个人观点提出批评。
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
主要的含义是指将每一个方法封装起来,让调用方选择具体需要使用的方法。
首先定义一个场景,还是出门旅行,小明出门旅游,从A市到B市,有飞机、大巴和火车三种出行方式。
代码实现
public static void Main(string[] args) { StrategyPattern strategy = new StrategyPattern(); strategy.TravelType(new Plane()); strategy.TravelType(new Bus()); strategy.TravelType(new Train()); }
Code
分析一下实现方式,首先定义一个抽象的旅行类,类中有一个获得旅行方式的抽象方法,接下来只要定义具体的类,继承旅行的抽象类然后重写方法。在外层将具体的旅游类封装起来,为外层提供一个公开的方法即可。
使用策略模式,可以方便的修改每一个方法而不用担心会对其他方法造成影响,降低类与类之间的耦合。
一般来说策略模式会和工厂方法一同使用,外部调用时通过工厂模式实例化具体的类,然后通过策略模式获取最终的结果。
以上就是对策略模式的一些个人总结和看法,欢迎其他同学为文中个人观点提出批评。
作者:Mr.Gilgamash 出处:http://gamash.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载。 未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。 |
相关文章推荐
- 关系型数据库的优缺点
- Win32汇编--80386的内存分页机制
- 编译安装时yum没有库文件的解决方法
- Codeforces 7A
- POJ3258 二分
- HDU 4630-No Pain No Game(线段树+离线处理)
- Java中循环问题:for,while,do-while 各种练习(打印上三角、下三角、输出100以内的素数、水仙花、最大公约、最小公倍数、分解质因数、兔子问题)
- maven常用命令介绍
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
- 认识Runtime1
- ntfs mount fail after upgrade win10
- ORACLE 10g 安装教程[图文]
- HDU 5301(Buildings-贪心构造)
- HDU 5391 Zball in Tina Town
- iOS概念入门学习-Foundation-NSArray
- 设置电脑分屏显示的4种情况
- c++类占用的内存空间
- URL的结构介绍
- 我的创业经历
- html5中的clip