码迷,mamicode.com
首页 > 其他好文 > 详细

策略模式

时间:2015-05-04 18:16:01      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:设计模式   策略模式   接口   组合   

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

 

大白话版:通过组合+接口的方式,把功能经常变动的部分从类中抽象出来,使其对用户透明。

 

例:

设计一个游戏,游戏人物的职业有骑士knight、盗贼thief等,其中骑士使用剑sword和弓arrow,盗贼使用匕首knife和弓arrow。游戏角色同一时间只能使用一种武器,随游戏角色等级的提升将能够使用更多种类的武器(如锤子hammer,针needle等),且角色使用不同武器时战斗方式不同。如何用设计游戏角色的类图?

将Weapon作为一个接口,以组合的方式存在于Character中,其中Weapon中useWeapon函数表明武器的具体使用方式,该函数在实现了Weapon接口的具体武器中实现。setWeapon函数使角色能够随时置换自己的Weapon。通过这种将Weapon作为接口组合入Character中,使武器的使用方式useWeapon独立于Character,让Character通过setWeapon设置相应武器后调用Fight即可使用Weapon的具体功能,而不需要了解所持Weapon具体内部结构的方式,就是策略模式。


技术分享

策略模式的实际应用:

Android网络通信框架-Volley中对策略模式的典型应用-Request类

策略模式

标签:设计模式   策略模式   接口   组合   

原文地址:http://blog.csdn.net/miaoyunzexiaobao/article/details/45482265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!