SimUDuck 策略模式
添加一个 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 策略模式相关推荐
- 8.6 GOF设计模式四: 策略模式… Strategy Pattern
策略模式- Strategy Pattern 在POS系统中,有时需要实行价格优惠, 该如何处理? 对普通客户或新客户报全价 对老客户统一折扣5% 对大客户统一折扣10% 注:课件 ...
- python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...
作者:liuyuan_jq 2011-06-13 策略模式定义 定义了 问题 J o e 上班的公司做了一套相当成功的模拟鸭子游戏: SimUDuck.游戏中会出现各种鸭子,一边游泳戏水,一边呱 呱叫 ...
- 设计模式(二)—— 策略模式(其实就是面向接口编程的应用场景!)
目录 策略模式总结 问题描述 版本(一) 版本(二) 版本(三) 新场景 无论是7个设计原则还是设计模式,完全遵循是很难的,但应有意识尽量遵循. "以往是代码复用,设计模式是经验复用&quo ...
- 【Head First 模式设计】第1章 策略模式
Intro to Design Patterns Welcome to Design Patterns SimUDuck应用程序 一个模拟鸭子游戏:SimUDuck.游戏中会出现各种鸭子,一边游泳,一 ...
- 设计模式解读之一: 策略模式——鸭子游戏
设计模式解读之一: 策略模式--鸭子游戏 当我们掌握了Java的语法,当我们了解了面向对象的封装.继承.多态等特性,当我们可以用Swing.Servlet.JSP技术构建桌面以及Web应用,不意味着我 ...
- 【Design pattern】简单工厂过渡策略模式
把自己当做小菜来跟学<大话设计模式>,跟着故事的思路来走 简单工厂模式:实现一个计算器代码 策略模式:商场打折代码 根据大鸟和小菜的故事,一步步的完善问题的过程!
- 设计模式 之美 -- 策略模式
策略模式作为行为型设计模式中的一种,主要封装相同功能的不同实现算法,用于在用户程序内部灵活切换.对用户来说能够快速替换对应的算法,能够让算法的实现独立于使用的用户. 基本的UML类图如下: 用户使用S ...
- 设计模式之策略模式(Strategy)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- Java中的策略模式实例教程
策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把 ...
最新文章
- 征服围棋之后 谷歌DeepMind宣布利用AI对抗乳腺癌
- 20165203 2017-2018-2 《Java程序设计》第一周学习总结
- String s1==s2面试题
- 微信小程序使用函数的方法
- django-上传图片-后台上传
- 海洋工作室——网站建设专家:全数据库比较工具
- Android中发现蓝牙设备的广播是,Android 蓝牙设备的查找和连接
- idea的NoClassDefFoundError的情况
- Linux期末复习总结
- java socket 面试题_Java面试题及答案
- 人才培养的金字塔模型
- Python爬虫教程(一):爬虫
- float取小数点后四位
- 众邮快递的物流信息是怎么在电脑上批量查询的
- 内部类有哪些好处?什么时候使用内部类
- 操作系统真象还原第2章:编写MBR主引导记录
- linux高可用小知识点汇总-行云管家
- 怎么把PDF转换成Word?教你三分钟完成转换
- DELPHI基础开发技巧
- Cg教程_可编程实时图形权威指南(扫描清晰版)+部分unity shader 知识
热门文章
- Centos7 安装 Elasticsearch7.10(不错可以试试)
- 磁盘df看还有剩余空间,但是创建文件时报错,提示磁盘已经满问题解决
- 反思坚定前进:定时记录 定时总结 一定要拿下目标!一定要心无旁骛!
- Bootstrap的栅格布局
- 数据结构实验之图论九:最小生成树_每天5分钟用C#学习数据结构(25)图 Part 6
- python连接oracle视频教程_python怎么连接oracle
- mysql 字段相同条数_用sql语句统计数据库某个字段中相同的数据有多少条?
- python atan_Python
- java 实体比较_java比较实体类
- android 能自动选择的listview,Android ListView多选模式