装饰者模式
装饰者模式
装饰者模式使用步骤:
1.装饰者和被装饰者实现同一个接口或者继承同一个类
2.装饰者中要有被装饰者的引用
3.对需要增强的方法进行加强
4.对不需要加强的方法调用原来方法
小练习:
1.创建项目DesignMode
2.创建包com.decorator_pattern.hjh
3.接口Car、被装饰者类BMCar、装饰者类CarWrap、测试类CarTest
接口Car:
package com.decorator_pattern.hjh; //接口 public interface Car { public void run(); public void stop(); }
被装饰者类BMCar:
package com.decorator_pattern.hjh;
//被装饰者BMCar
public class BMCar implements Car{
@Override
public void run() {
System.out.println("BMC车在跑。。。");
}
@Override
public void stop() {
System.out.println("BMCar刹车");
}
}
装饰者类CarWrap:
package com.decorator_pattern.hjh;
public class CarWrap implements Car{
private Car car;
public CarWrap(Car car) {
this.car = car;
}
@Override
public void run() {
System.out.println("加满油");
System.out.println("轻装上阵100码");
}
@Override
public void stop() {
car.stop();
}
}
测试类CarTest:
package com.decorator_pattern.hjh;
public class CarTest {
public static void main(String [] args) {
BMCar car = new BMCar();
//car.run();//BMC车在跑。。。
//car.stop();//BMCar刹车
CarWrap cw = new CarWrap(car);
cw.run();//加满油 轻装上阵100码
cw.stop();//BMCar刹车
}
}