`
chenlb
  • 浏览: 695723 次
  • 性别: 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作为一个强大的数值计算和数据分析环境,是进行模式识别实验和开发的理想工具。本压缩包文件...

    Java与设计模式[PPT]

    在软件开发中,设计模式是一种解决常见问题的经验总结,是经过良好验证的解决方案模板。Java与设计模式的结合使得代码更加灵活、可维护,并且降低了系统间的耦合度。本篇主要介绍三种创建型设计模式:工厂模式、工厂...

    Thinking in paterns(Java)

    行为型模式则关注对象之间的交互和职责分配,如命令模式、责任链模式、解释器模式、迭代器模式、访问者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。这些模式提供了更好的控制流和...

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

    例如,调整天线间距、排列方式或相位分布,以实现期望的辐射模式。 通过深入学习和实践这些MATLAB程序,可以掌握阵列天线的基本理论,提升在无线通信、雷达探测等领域的专业知识。同时,理解并运用这些代码,能够为...

    K-8258高清信号发生器操作规范

    - 开机后,通过按面板上的"TIMG"键选择所需的视频定时模式,然后按"PATERN"键选择测试图案。 - 使用"HDMI"、"DTV"、"VIDEO"键可以直接进入对应的TIMING模式,方便快捷。 - 对于HDMI和DVI转HDMI操作,特别需要注意...

    patern-recognition-project

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

    面向对象技术课程设计

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

    模式识别:模式字段-matlab开发

    在"patern.zip"压缩包中,可能包含了示例代码、数据集和预处理函数等资源,帮助你实践以上步骤。例如,一个简单的模式识别项目可能包含以下文件: - `load_data.m`:加载数据集的函数。 - `preprocess_data.m`:对...

    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.

    php自定义urlencode,urldecode函数实例

    在提供的示例代码中,自定义的ajax_encode函数首先定义了一个模式数组$patern,包含了需要被替换的字符序列,然后定义了一个替换数组$rp,包含了相应的替换内容。使用preg_replace函数进行全局替换,将输入字符串中...

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

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

    Home-work1.rar_Home Home

    - `Patern01.m`:同样,这可能是一个处理数据或实现特定计算的辅助函数,与`pattern03.m`一起支持主程序的运行。 - `Normaldistribution(function).m`:这个文件很可能包含了一个关于正态分布的函数,因为贝叶斯分类...

    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属性,它接受一个正则表达式。表单提交时这个正则表达式会被用于验证表单内非空的值,如果控件的值不匹配这个正则表达就会弹出提示框,并阻止表达提交。提示框内的文字可以使用...

    lbpfacedem.zip_matlab例程_matlab_

    标题 "lbpfacedem.zip_matlab例程_matlab_" 暗示了这是一个关于使用局部二进制模式(Local Binary Patterns, LBP)进行人脸识别的MATLAB代码示例。LBP是一种简单且有效的纹理分析方法,常用于图像处理,尤其是面部...

Global site tag (gtag.js) - Google Analytics