装饰者模式
2019-05-07 本文已影响0人
hgzzz
-
在不能以继承的方式扩展类功能的情况下使用装饰者模式
-
接口
public interface Car {
void start();
void run();
void stop();
}
- 实现类
public class MyCar implements Car{
@Override
public void start() {
System.out.println("start");
}
@Override
public void run() {
System.out.println("run");
}
@Override
public void stop() {
System.out.println("stop");
}
}
- 装饰者
public class MyCarPlus implements Car {
private Car car;
public MyCarPlus( Car car){
this.car = car;
}
@Override
public void start() {
System.out.println("before start,play some music ");
car.start();
}
@Override
public void run() {
car.run();
}
@Override
public void stop() {
car.stop();
}
}
- 使用
public class Run {
public static void main(String[] args) {
MyCarPlus myCarPlus = new MyCarPlus(new MyCar());
myCarPlus.start();
}
}