java 设计模式 之 装饰器模式
Posted blogxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 设计模式 之 装饰器模式相关的知识,希望对你有一定的参考价值。
- 装饰器模式的作用
在不修改原先对象核心的功能的情况下,对功能进行增强。
- 增强对象的功能的途径
- 通过类继承的方式,对父对象进行增强操作,例如造车是父类,改装跑车,跑车加大灯,改装房车,房车加私人电影院。如图: 通过这种方式做的装饰类会因为业务的复杂性激增
2.通过装饰模式,将方法增强。如图
- 装饰模式架构
car :被装饰的抽象类
package javadesign.decorate; /** * 抽象小汽车 */ public interface Car public void buildCar();
benCar:被装饰的实现
package javadesign.decorate; public class BenCar implements Car @Override public void buildCar() System.out.println("建造一辆车");
Decorator:装饰的类
package javadesign.decorate; public class Decorator implements Car public Car car; public Decorator(Car car) this.car=car; @Override public void buildCar() this.car.buildCar();
StrongDecorator:装饰的实现
package javadesign.decorate; public class Decorator implements Car public Car car; public Decorator(Car car) this.car=car; @Override public void buildCar() this.car.buildCar();
Client:测试类
package javadesign.decorate; public class Client public static void main(String[] args) Car car=new BenCar(); Decorator decorator=new StrongDecorator(car); ((StrongDecorator) decorator).buildSportsCar(); ((StrongDecorator) decorator).buildHouseCar();
测试结果:
总结:装饰模式在不改变原先核心功能的情况下,可以实现增强,并且不会产生很多继承类,按照业务模块划分,通过不同的方法进行装饰。
以上是关于java 设计模式 之 装饰器模式的主要内容,如果未能解决你的问题,请参考以下文章