Strategy 模式的意图:
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使算法可独立于使用它的客户而变化。
说得太抽象了。下面来看下例子(2007 软件设计师考试——上):
鸭子种类
|
发声特征
|
飞行特征
|
外观特征
|
灰鸭(MallardDuck)
|
发出"嘎嘎"声(Quack)
|
用翅膀飞行(Fly With wings)
|
灰色羽毛
|
红头鸭(RedHeadDuck)
|
发出"嘎嘎"声(Quack)
|
用翅膀飞行(Fly With wings)
|
灰色羽毛
|
棉花鸭(CottonDuck)
|
不发声(QuackNoWay)
|
不能飞行(FlyNoWay)
|
白色
|
橡皮鸭(RubberDuck)
|
发出橡皮与空气摩擦声(Squeak)
|
不能飞行(FlyNoWay)
|
黑白橡皮颜色
|
分享到:
相关推荐
GIS Pattern recognition paper
matlab开发-Patternrecognition。它是模式识别的基本理论。
matlab,线阵,面阵和圆阵的方向图程序
单独测试解析: 用法:$ python test_parsing.py outdir inkmldir test.py 需要一个输出目录和一个包含要测试的inkml 文件的目录。测试分割、分类、解析: 用法:$ python test_all.py stateFilename outdir ...
网上商店形式多样,每个站点有自己的特色,但也有其一般的共性,单就"商品的变化,以便及时通知订户"这一点,是很多网上商店共有的模式,这一模式类似Observer patern观察者模式. <br>具体的说,如果网上商店中商品在...
通俗,简洁,还配有简短的代码实现,真的很实惠哦,时常翻阅,功力渐增
Design and Patern CSS 2.1
节点API框架***创建文件夹[accessLog&上载] *** Express Framework-API NPM安装#确保依赖关系@ hapi / joi /验证程序-验证加密人体解析器压缩科尔斯Dotenv express-rate-limit-避免并发请求的攻击头盔JWT...
checker_board.rar: This Visual Studio 2008 project will generate a .yuv file (FOURCC YV12) standard checkerboard patern. It can be used to generate any user defined patern in user application.
你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边 这里还有几个字符 '*', '+',和 '?', 他们用来表示一个字符可以...
$patern = array("/%/","/=/","/&/"); // % 必须是第一个项, 替换是按项的顺序进行的. $rp = array("%","&","="); return preg_replace($patern,$rp,$str); } //逆函数 function ajax_decode($str){ $
myt-predicates.zip,一个简单的java谓词api(specification patern的实现),一个简单的java谓词api(specification pattern的实现)。
SIM卡 开源代码,用于通过将对象覆盖有图案(例如正弦/余弦)来重建SIM图像(结构照明显微镜)以提高空间分辨率 ...生成的模式可以在“模式”文件夹中找到。 可以在文件夹Aufnahmen中找到获取的图像及其重建图像。
my code for face recognising using local binary patern in matlab
json 解析pas单元和json查看工具。一下是版本 * v1.2 * + support of currency data type * + right trim unquoted string ... * + Null Object Design Patern (ex: for obj in values.N['path'] do ...)
Projenin后端C#diliyle,.Net核心platformunda,实体框架核心框架ile MVC ve通用存储库Patern kullanarak,代码优先yaklaşımıyla,SOLID prensiplerine uygun olarakçokkatmanlımimari ilegeliş...
CHANGES: * V1.5 * + 修正indent[aaa,bbb] 的问题 ,后面没换行的问题,主要是美化。 ... * V1.4 * + 修正D7下关闭溢出出错的问题{.$.Q-} ... * + Null Object Design Patern (ex: for obj in values.N['path'] do ...)
HTML5对表单元素提供了patern属性,它接受一个正则表达式。表单提交时这个正则表达式会被用于验证表单内非空的值,如果控件的值不匹配这个正则表达就会弹出提示框,并阻止表达提交。提示框内的文字可以使用...
Thinking in Java的作者的另一经典著作!
printf("patern %d assigned to cluster %d\n\n",pat,Clustid); //post this pattern to the cluster MemberIndex=Cluster[Clustid].NumMembers; Cluster[Clustid].Member[MemberIndex]=pat; Cluster...