装饰者模式
Posted volcanocan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰者模式相关的知识,希望对你有一定的参考价值。
总结一下今天的学习内容:
装饰着者模式的使用步骤:
1.装饰者和被装饰者实现同一个接口或者继承同一个类
2.装饰者中要有被装饰者的引用
3.对需要增强的方法进行加强
4.对不需要加强的方法调用原来方法
通过以下代码为例:
首先,定义一个Car接口:
public interface Car { void run(); void stop(); }
这是一个实现Car的接口,重写了Car的run和stop方法:
public class QQ implements Car { @Override public void run() { System.out.println("qq在跑"); } @Override public void stop() { System.out.println("刹得住车"); } }
写一个主函数:
public class TTT { public static void main(String[] args) { QQ qq = new QQ(); qq.run(); qq.stop(); } }
运行可得:
qq在跑
刹得住车
接着,装饰者实现Car这个接口。装饰者中要有被装饰者的引用,将car传入CarWrap构造方法中。对于需要增强的方法run(),我们可以重写该方法。对于不需要增强的方法,则调用原来的方法即可。
public class CarWarp implements Car { private Car car; public CarWarp(Car car){ this.car=car; } @Override public void run() { System.out.println("加上电池"); System.out.println("我终于可以5秒破百了.."); } @Override public void stop() { car.stop(); } }
写一个测试函数:
public class TTT { public static void main(String[] args) { CarWarp warp = new CarWarp(qq); warp.run(); warp.stop(); } }
运行可得:
加上电池
我终于可以5秒破百了..
刹得住车
以上是关于装饰者模式的主要内容,如果未能解决你的问题,请参考以下文章