实例一:变形金刚 变形金刚在变形之前是一辆汽车,它可以在陆地上移动。当它变成机器人之后除了能够在陆地上移动之外,还可以说话;如果需要,它还可以变成飞机,除了在陆地上移动还可以在天空中飞翔。

public class Airplane extends Changer
{public Airplane(Transform transform){super(transform);System.out.println("变成飞机!");}public void fly(){System.out.println("在天空飞翔!");   }
}
public final class Car implements Transform
{public Car(){System.out.println("变形金刚是一辆车!");}public void move(){System.out.println("在陆地上移动!");  }
}
public class Changer implements Transform
{private Transform transform;public Changer(Transform transform){this.transform=transform;}public void move(){transform.move();    }
}
public class Client
{public static void main(String args[]){Transform camaro;camaro=new Car();camaro.move();System.out.println("-----------------------------");Airplane bumblebee=new Airplane(camaro);bumblebee.move();bumblebee.fly();}
}
public class Robot extends Changer
{public Robot(Transform transform){super(transform);System.out.println("变成机器人!");}public void say(){System.out.println("说话!");    }
}
public interface Transform
{public void move();
}

装饰模式实例与解析 实例一:变形金刚相关推荐

  1. 桥接模式实例与解析 实例一:模拟毛笔

    桥接模式实例与解析   实例一:模拟毛笔           现需要提供大中小3种型号的画笔,能够绘制5种不同颜色,如果使用蜡笔,我们需要准备3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类.而 ...

  2. 享元模式实例与解析实例二:共享网络设备(有外部状态)

    实例二:共享网络设备(有外部状态) 虽然网络设备可以共享,但是分配给每一个终端计算机的端口(Port)是不同的,因此多台计算机虽然可以共享同一个网络设备,但必须使用不同的端口.我们可以将端口从网络设备 ...

  3. 命令模式实例与解析--实例一:电视机遥控器

    电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作.抽象命令角色由一个命令接口来扮演,有三个具体的命令类实现了抽象命令接口,这三个具体命令类分别代表三种操作 ...

  4. 组合模式实例与解析 实例一:水果盘

    实例一:水果盘 在水果盘(Plate)中有一些水果,如苹果(Apple).香蕉(Banana).梨子(Pear),当然大水果盘中还可以有小水果盘,现需要对盘中的水果进行遍历(吃),当然如果对一个水果盘 ...

  5. 迭代器模式实例与解析---实例:电视机遥控器

    电视机遥控器就是一个迭代器的实例,通过它可以实现对电视机频道集合的遍历操作,本实例我们将模拟电视机遥控器的实现. public class Client {public static void dis ...

  6. 模板方法模式实例与解析--实例一:银行业务办理流程

    在银行办理业务时,一般都包含几个基本步骤,首先需要取号排队,然后办理具体业务,最后需要对银行工作人员进行评分.无论具体业务是取款.存款还是转账,其基本流程都一样.现使用模板方法模式模拟银行业务办理流程 ...

  7. JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念...

    JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html><body><script type="tex ...

  8. 二进制 java Class文件解析实例

    其实网上已经有很多java Class文件的解析实例的文章,写这篇博客,只是为了自己仔仔细细的按照jvm spec看一边,别无其他. 先上class文件的格式. ClassFile {         ...

  9. jQuery Ajax 实例 全解析(转)

    jQuery Ajax 实例 全解析 jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我 ...

最新文章

  1. 谷歌推出TFQ,一个可训练量子模型的机器学习框架
  2. 学术干货:看清华教授如何将深度学习引入音频信号处理
  3. Binary Matrix Transform
  4. EasyUI 系列之二 第一个EasyUI页面
  5. 滴滴出行2020数据分析面试题
  6. 垃圾热解气化工艺的电气、仪表及控制系统设计
  7. 银河麒麟安装远程桌面
  8. 启动转换安装失败 拷贝windows安装文件时出错_男人的生产力工具:极速拷贝 效率神器 TeraCopy精品推荐...
  9. w10计算机无法打印,win10升级后惠普无法打印怎么解决_win10升级后惠普打印不了的处理办法...
  10. android服务下载,android服务之bindService和unService中下载任务中的应用
  11. MySQL 条件查询
  12. OpenJudge NOI 1.7 08:字符替换
  13. 【java笔记】random类生成随机数
  14. Visual studio2012密钥 vs2012密钥 本人亲测 真实有效
  15. 京东商品分类API接口-(cat_get-获得jd商品分类API接口),京东分类API接口
  16. Java项目本地部署宝塔搭建实战-医院HIS系统源码
  17. day8--socket回顾
  18. 2018-2019-2 20189221 《网络攻防技术》第八周作业
  19. 基于C#的图片浏览及显示功能(源码)
  20. 武大郎后悔爱上潘金莲爱上了三剑客

热门文章

  1. 波数与波长 matlab,Matlab求解方同轴波导的截止波长和特性阻抗
  2. 惊,面N次都不对:++ 操作不是线程全的
  3. git push 失败问题如何解决
  4. 自律是最大程度的自由
  5. 我国AI医学影像新成果:人工智能可为肝癌患者无创分级
  6. 腐肉为引,气球为信,负重前行,只为爱你
  7. 如何做一个好的管理者
  8. linux spec 脚本,RPM包制作之Spec文件详解
  9. 微信公众号运营,这些运营技巧不能少
  10. 闭关修炼(四)并发包/类