装饰者设计模式
来源:互联网 发布:java 怎么读 编辑:程序博客网 时间:2024/05/12 15:25
public interface Car {
public void run();
public void show();
}
package 装饰者;
public abstract class CarDrector implements Car {
private Car car;
public CarDrector(Car car){
this.car=car;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
@Override
public abstract void show();
}
public class RunCar implements Car{
@Override
public void run() {
// TODO 自动生成的方法存根
System.out.println("Running ...");
}
@Override
public void show() {
// TODO 自动生成的方法存根
this.run();
}
}
package 装饰者;
public class FlyCarDector extends CarDrector{
public FlyCarDector(Car car) {
super(car);
// TODO 自动生成的构造函数存根
}
@Override
public void run() {
// TODO 自动生成的方法存根
}
public void fly() {
System.out.println("Flying ...");
}
@Override
public void show() {
// TODO 自动生成的方法存根
this.getCar().show();
this.fly();
}
}
package 装饰者;
public class SwimCarDecorator extends CarDrector{
public SwimCarDecorator(Car car) {
super(car);
// TODO 自动生成的构造函数存根
}
@Override
public void run() {
// TODO 自动生成的方法存根
}
@Override
public void show() {
// TODO 自动生成的方法存根
this.getCar().show();
this.swim();
}
private void swim() {
// TODO 自动生成的方法存根
System.out.println("Swiming..");
}
}
package 装饰者;
public class TestMain {
public static void main(String[] args) {
Car run=new RunCar();
run.show();
System.out.println("-------------");
CarDrector fly=new FlyCarDector(run);
fly.show();
System.out.println("--------------");
CarDrector swim=new SwimCarDecorator(fly);
swim.show();
}
}
- 装饰者设计模式
- 设计模式 - 装饰者
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 微信小程序全面实战,架构设计 && 躲坑攻略
- xxx is not in the sudoers file.This incident will be reported.的解决方法
- Qt的元对象(Meta-Object)系统简介
- Mina的多线程模式——节选自设计文档
- shell练习题
- 装饰者设计模式
- Tricks(四十八)—— 注释一段代码
- intellij中启动jetty出现的类加载问题
- WebSocket将httpsession作为参数
- angularJS
- 董哥教你一天对接最新版服务器端支付宝
- java的 反射机制
- Project Euler Problem 14 Longest Collatz sequence
- 简单html