装饰模式
来源:互联网 发布:js template模板 编辑:程序博客网 时间:2024/06/10 08:53
一、什么是装饰模式
装饰(Decorator)模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。
二、装饰模式的结构
三、装饰模式的角色和职责
抽象组件角色:一个抽象接口,是被装饰类和装饰类的父接口。
具体组件角色:为抽象组件的实现类。
抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。
具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。
package com.dw.test;//抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。public abstract class Car { public abstract void show(); public abstract void run();}
package com.dw.test;//具体组件角色:为抽象组件的实现类 被装饰类public class RunCar extends Car {public void show() {this.run();}public void run() {System.out.println("可以跑");}}
package com.dw.test;//抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。public abstract class CarDecorator extends Car {private Car car;public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}public CarDecorator(Car car){this.car=car;}public abstract void show();}
package com.dw.test;//具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。public class FlyCarDecorator extends CarDecorator {public FlyCarDecorator(Car car) {super(car);}public void show() {this.getCar().show();this.fly();}public void fly(){System.out.println("可以飞");}public void run() {}}
package com.dw.test;public class MainClass {/*一、什么是装饰模式装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。三、装饰模式的角色和职责抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。具体组件角色:为抽象组件的实现类。抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰*/ public static void main(String[] args) {Car car=new RunCar();car.show();System.out.println("-----------------");Car car1=new FlyCarDecorator(car);car1.show(); }}
0 0
- 装饰模式-撤销装饰
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- java 判断字符串中全部为数字
- 持续集成之“自动化部署”
- SQL精编3
- 设置UnityWebPlayer宽高100%
- php计算中文长度函数
- 装饰模式
- mac 如何打开目录使用工具
- location.href、parent.location.href、top.location.href、 window.open实现页面跳转
- 客户自谈移民香港的感想和经历(二)
- 持续集成理论和实践的新进展
- Effecitive Java 读书笔记 (一)
- Android中Animation动画的介绍及用法
- C++中 #define与const、inline、typedef的区别
- 第十三周项目一数组大折腾(5)