策略模式
来源:互联网 发布:全自动打字赚钱软件 编辑:程序博客网 时间:2024/05/22 00:35
设计原则:
- 封装变化
- 多用组合,少用继承
- 针对接口编程,不针对实现编程
策略模式
策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
public abstract class Duck{ FlyBehavior flyBehavior;//多用组合 public abstract void display(); public void performFly(){ flyBehavior.fly(); } public void setFlyBehavior (FlyBehavior flyBehavior){ this.flyBehavior=flyBehavior;//动态修改FlyBehavior }}interface FlyBehavior{ public void fly();//针对接口编程}class FlyWithWings implements FlyBehavior{ public void fly(){//针对接口编程 System.out.println("I'm flying with wings"); }}class NoFly implements FlyBehavior{ public void fly(){//针对接口编程 System.out.println("I'm can't fly"); }}
以Duck为例子,继承Duck例子之后可以通过设定不同的FlyBehavior 实现来赋予子类不同的行为。此处FlyBehavior就是算法族,FlyWithWings 是算法的一个具体实现。FlyBehavior的变化独立于Duck的实现。setFlyBehavior ()可以动态更改行为。
阅读全文
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 《Kali+Linux渗透测试的艺术》学习总结之----Kali Linux简介
- sublime text3 安装nodejs 开发环境
- qduoj 142 ycb的ACM进阶之路 二进制优化多重背包
- virtualbox扩大硬盘
- 网络爬虫-URL编码、解码
- 策略模式
- yum -y install ftp
- [unity3D基础篇05]重要的设计模式
- 对象复制,很多坑,慎重使用对象复制(即对象克隆)a=b
- Android动态显示当前年月日时分秒系统时间
- Magento获取指定分类下的产品销量排行
- android app 集成百度地图,打包签名后地图不显示的解决方案
- RTMPdump使用相关
- CSS3 Canvas如何巧妙实现空白画布