装饰者设计模式
package Decorator_Pattern;
public interface Car {
public void run();
public void stop();
}
package Decorator_Pattern;
public class QQ implements Car {
public void run(){
System.out.println(
"QQ可以跑");
}
@Override
public void stop(){
System.out.println(
"可以刹车");
}
}
package Decorator_Pattern;
public class WarpCar implements Car {
private Car car;
public WarpCar(Car car){
this.car = car ;
}
@Override
public void run() {
System.out.println(
"改装后的汽车可以跑得更快");
}
@Override
public void stop() {
car.stop();
}
}
“` package Decorator_Pattern;
public class Init {
public static void main(String[] args) {
QQ qq=new QQ();
// qq.run(); 原本的方法 // qq.stop();
WarpCar warp = new WarpCar(qq);
warp.run(); //对原qq方法加强后的方法
warp.stop();
}
}
装饰者模式的设计步骤:
装饰者(WarpCar类)和被装饰者(QQ类)都要实现同一个接口或者继承同一个类装饰者要有被装饰者的引用 (通过有参数构造器来实现)对需要的方法加强不需要的方法不变