添加一个 FlySuperDuck.java implement IFlyBehavior

在具体鸭子中可以拥有这种行为:

public ModelDuck()

{

this.flybehavior=newFlySuperDuck();

}

这样就可以实现给某种鸭子添加某种行为。

在具体鸭子中可以拥有这种行为:

public ModelDuck()

{

this.flybehavior=newFlySuperDuck();

}

这样就可以实现给某种鸭子添加某种行为

可以添加一种接口Ispeak,有一个speak方法。这样鸭子们就有了另一种行为speak()。

父类中只需要添加一个speakbehavior,子类就可以有具体的实现。例如有一个DonaldSpeak实现了Ispeak接口,子类就可以拥有这个具体的行为n利用继承来提供Duck的行为,这会导致下列哪些缺点?nA.代码在多个子类中重复;

nB.运行时的行为不容易改变;

nE. 鸭子不能同时又飞又叫,不能有多继承;

nF.改变会牵一发而动全身,造成其他鸭子不想要的改变;

本文出自 “Vincent” 博客,请务必保留此出处http://vincent1992.blog.51cto.com/4621739/1584889

SimUDuck 策略模式相关推荐

  1. 8.6 GOF设计模式四: 策略模式… Strategy Pattern

    策略模式- Strategy Pattern  在POS系统中,有时需要实行价格优惠, 该如何处理?  对普通客户或新客户报全价  对老客户统一折扣5%  对大客户统一折扣10%  注:课件 ...

  2. python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...

    作者:liuyuan_jq 2011-06-13 策略模式定义 定义了 问题 J o e 上班的公司做了一套相当成功的模拟鸭子游戏: SimUDuck.游戏中会出现各种鸭子,一边游泳戏水,一边呱 呱叫 ...

  3. 设计模式(二)—— 策略模式(其实就是面向接口编程的应用场景!)

    目录 策略模式总结 问题描述 版本(一) 版本(二) 版本(三) 新场景 无论是7个设计原则还是设计模式,完全遵循是很难的,但应有意识尽量遵循. "以往是代码复用,设计模式是经验复用&quo ...

  4. 【Head First 模式设计】第1章 策略模式

    Intro to Design Patterns Welcome to Design Patterns SimUDuck应用程序 一个模拟鸭子游戏:SimUDuck.游戏中会出现各种鸭子,一边游泳,一 ...

  5. 设计模式解读之一: 策略模式——鸭子游戏

    设计模式解读之一: 策略模式--鸭子游戏 当我们掌握了Java的语法,当我们了解了面向对象的封装.继承.多态等特性,当我们可以用Swing.Servlet.JSP技术构建桌面以及Web应用,不意味着我 ...

  6. 【Design pattern】简单工厂过渡策略模式

    把自己当做小菜来跟学<大话设计模式>,跟着故事的思路来走 简单工厂模式:实现一个计算器代码 策略模式:商场打折代码 根据大鸟和小菜的故事,一步步的完善问题的过程!

  7. 设计模式 之美 -- 策略模式

    策略模式作为行为型设计模式中的一种,主要封装相同功能的不同实现算法,用于在用户程序内部灵活切换.对用户来说能够快速替换对应的算法,能够让算法的实现独立于使用的用户. 基本的UML类图如下: 用户使用S ...

  8. 设计模式之策略模式(Strategy)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. Java中的策略模式实例教程

    策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把 ...

最新文章

  1. 征服围棋之后 谷歌DeepMind宣布利用AI对抗乳腺癌
  2. 20165203 2017-2018-2 《Java程序设计》第一周学习总结
  3. String s1==s2面试题
  4. 微信小程序使用函数的方法
  5. django-上传图片-后台上传
  6. 海洋工作室——网站建设专家:全数据库比较工具
  7. Android中发现蓝牙设备的广播是,Android 蓝牙设备的查找和连接
  8. idea的NoClassDefFoundError的情况
  9. Linux期末复习总结
  10. java socket 面试题_Java面试题及答案
  11. 人才培养的金字塔模型
  12. Python爬虫教程(一):爬虫
  13. float取小数点后四位
  14. 众邮快递的物流信息是怎么在电脑上批量查询的
  15. 内部类有哪些好处?什么时候使用内部类
  16. 操作系统真象还原第2章:编写MBR主引导记录
  17. linux高可用小知识点汇总-行云管家
  18. 怎么把PDF转换成Word?教你三分钟完成转换
  19. DELPHI基础开发技巧
  20. Cg教程_可编程实时图形权威指南(扫描清晰版)+部分unity shader 知识

热门文章

  1. Centos7 安装 Elasticsearch7.10(不错可以试试)
  2. 磁盘df看还有剩余空间,但是创建文件时报错,提示磁盘已经满问题解决
  3. 反思坚定前进:定时记录 定时总结 一定要拿下目标!一定要心无旁骛!
  4. Bootstrap的栅格布局
  5. 数据结构实验之图论九:最小生成树_每天5分钟用C#学习数据结构(25)图 Part 6
  6. python连接oracle视频教程_python怎么连接oracle
  7. mysql 字段相同条数_用sql语句统计数据库某个字段中相同的数据有多少条?
  8. python atan_Python
  9. java 实体比较_java比较实体类
  10. android 能自动选择的listview,Android ListView多选模式