装饰者模式
来源:互联网 发布:淘宝卖家淘宝客推广 编辑:程序博客网 时间:2024/06/05 18:51
ICar.java
public interface ICar {void move();}//ConcreteComponent 具体构件角色(真实对象)class Car implements ICar {@Overridepublic void move() {System.out.println("陆地上跑!");}}//Decorator装饰角色class SuperCar implements ICar {protected ICar car;public SuperCar(ICar car) {super();this.car = car;}@Overridepublic void move() {car.move();}}//ConcreteDecorator具体装饰角色class FlyCar extends SuperCar {public FlyCar(ICar car) {super(car);}public void fly(){System.out.println("天上飞!");}@Overridepublic void move() {super.move();fly();}}//ConcreteDecorator具体装饰角色class WaterCar extends SuperCar {public WaterCar(ICar car) {super(car);}public void swim(){System.out.println("水上游!");}@Overridepublic void move() {super.move();swim();}}//ConcreteDecorator具体装饰角色class AICar extends SuperCar {public AICar(ICar car) {super(car);}public void autoMove(){System.out.println("自动跑!");}@Overridepublic void move() {super.move();autoMove();}}Client.java
public class Client {public static void main(String[] args) {Car car = new Car();car.move();System.out.println("增加新的功能,飞行----------");FlyCar flycar = new FlyCar(car);flycar.move();System.out.println("增加新的功能,水里游---------");WaterCar waterCar = new WaterCar(car);waterCar.move();System.out.println("增加两个新的功能,飞行,水里游-------");WaterCar waterCar2 = new WaterCar(new FlyCar(car));waterCar2.move();//Reader r = new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/a.txt"))));//io流也用到了装饰模式}}
阅读全文
0 0
- 装饰者模式(Derector)
- 装饰者模式
- Decorator 装饰者模式
- 装饰者设计模式
- 装饰者模式
- 装饰者模式
- 装饰者模式
- 装饰者模式(Decorator)
- 装饰者模式
- 装饰者模式
- 装饰者模式
- 装饰者模式 DecoratorPattern
- 设计模式 - 装饰者
- 装饰者模式
- 装饰者模式
- 装饰者模式 - 2
- 装饰者模式
- 装饰者模式
- 《剑指Offer》做题总结(一)
- (二)在centos7 下安装docker
- tensorflow 设置图片大小与翻转
- 2017814作业
- phantomjs 抓取、截图中文网站乱码的问题的解决
- 装饰者模式
- 如何实现报表设计中的高精度报表套打?
- html学习总结1:标签、样式及属性
- ASP.Net Core与数据库结合
- 基于注解spring4.*,mybatis3.*最简单的SSM整合
- A
- 算法训练 乘法表
- 在浏览器中运行Keras模型,并支持GPU
- Collection和Map