装饰者设计模式

装饰者设计模式

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();

}

}

装饰者模式的设计步骤:

  1. 装饰者(WarpCar类)和被装饰者(QQ类)都要实现同一个接口或者继承同一个类
  2. 装饰者要有被装饰者的引用 (通过有参数构造器来实现)
  3. 对需要的方法加强
  4. 不需要的方法不变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值