`
chenlb
  • 浏览: 689824 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Strategy Patern 策略模式

阅读更多

    Strategy 模式的意图:

定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使算法可独立于使用它的客户而变化。


说得太抽象了。下面来看下例子(2007 软件设计师考试——上):

 

鸭子种类

发声特征

飞行特征

外观特征

灰鸭(MallardDuck)

发出"嘎嘎"(Quack)

用翅膀飞行(Fly With wings)

灰色羽毛

红头鸭(RedHeadDuck)

发出"嘎嘎"(Quack)

用翅膀飞行(Fly With wings)

灰色羽毛

棉花鸭(CottonDuck)

不发声(QuackNoWay)

不能飞行(FlyNoWay)

白色

橡皮鸭(RubberDuck)

发出橡皮与空气摩擦声(Squeak)

不能飞行(FlyNoWay)

黑白橡皮颜色

 

 

分享到:
评论

相关推荐

    GIS-patern-recognition-paper.rar_GIS MATLAB_gis_patern recogniti

    GIS Pattern recognition paper

    matlab开发-Patternrecognition

    matlab开发-Patternrecognition。它是模式识别的基本理论。

    Patern.rar_线阵_面阵_面阵 MATLAB_面阵matlab_面阵圆阵

    matlab,线阵,面阵和圆阵的方向图程序

    patern-recognition-project

    单独测试解析: 用法:$ python test_parsing.py outdir inkmldir test.py 需要一个输出目录和一个包含要测试的inkml 文件的目录。测试分割、分类、解析: 用法:$ python test_all.py stateFilename outdir ...

    面向对象技术课程设计

    网上商店形式多样,每个站点有自己的特色,但也有其一般的共性,单就"商品的变化,以便及时通知订户"这一点,是很多网上商店共有的模式,这一模式类似Observer patern观察者模式. <br>具体的说,如果网上商店中商品在...

    Java与设计模式[PPT]

    通俗,简洁,还配有简短的代码实现,真的很实惠哦,时常翻阅,功力渐增

    CSS Install Result 2006

    Design and Patern CSS 2.1

    NodeSkeleton:带有Express Framework MVC Skeleton OOPS Patern API的Node Js-具有安全依赖性

    节点API框架***创建文件夹[accessLog&上载] *** Express Framework-API NPM安装#确保依赖关系@ hapi / joi /验证程序-验证加密人体解析器压缩科尔斯Dotenv express-rate-limit-避免并发请求的攻击头盔JWT...

    osd.rar_Will_YUV osd_osd yuv

    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.

    Java-PHP-C#

    你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边 这里还有几个字符 '*', '+',和 '?', 他们用来表示一个字符可以...

    php自定义urlencode,urldecode函数实例

    $patern = array("/%/","/=/","/&/"); // % 必须是第一个项, 替换是按项的顺序进行的. $rp = array("%","&","="); return preg_replace($patern,$rp,$str); } //逆函数 function ajax_decode($str){ $

    hazelcast-hibernate3-3.1.5.zip

    myt-predicates.zip,一个简单的java谓词api(specification patern的实现),一个简单的java谓词api(specification pattern的实现)。

    SIM-Scilab:开源代码,用于通过将对象覆盖有图案(例如正弦余弦图)来重建SIM图像(结构化照明显微镜)以提高空间分辨率

    SIM卡 开源代码,用于通过将对象覆盖有图案(例如正弦/余弦)来重建SIM图像(结构照明显微镜)以提高空间分辨率 ...生成的模式可以在“模式”文件夹中找到。 可以在文件夹Aufnahmen中找到获取的图像及其重建图像。

    lbpfacedem.zip_matlab例程_matlab_

    my code for face recognising using local binary patern in matlab

    JsonViewer.rar

    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 ...)

    project.ecommerce

    Projenin后端C#diliyle,.Net核心platformunda,实体框架核心框架ile MVC ve通用存储库Patern kullanarak,代码优先yaklaşımıyla,SOLID prensiplerine uygun olarakçokkatmanlımimari ilegeliş...

    superobject1.5.rar

    CHANGES: * V1.5 * + 修正indent[aaa,bbb] 的问题 ,后面没换行的问题,主要是美化。 ... * V1.4 * + 修正D7下关闭溢出出错的问题{.$.Q-} ... * + Null Object Design Patern (ex: for obj in values.N['path'] do ...)

    使用HTML5的表单验证的简单示例

    HTML5对表单元素提供了patern属性,它接受一个正则表达式。表单提交时这个正则表达式会被用于验证表单内非空的值,如果控件的值不匹配这个正则表达就会弹出提示框,并阻止表达提交。提示框内的文字可以使用...

    Thinking in paterns(Java)

    Thinking in Java的作者的另一经典著作!

    k-mean聚类算法实现

    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...

Global site tag (gtag.js) - Google Analytics