装饰模式(Decorator)
定义:动态地给一个对象增加一些额外的职责。
角色:
- 抽象构件:Component
- 具体构件:ConcreteComponent
- 抽象装饰类:Decorator
- 具体装饰类:ConcreteDecorator
模式分析:
具体构件类和抽象构件类都实现了抽象构件接口,模式的关键在于抽象装饰类,这个类实现了抽象构件接口并且组合了抽象构件,在其构造函数中设置参数注入具体构件对象,在其装饰方法中调用这个注入的构件类已有的方法,再通过具体装饰类的继承,添加其他方法和功能。
核心理解
装饰模式做的事情是动态修改被装饰者的一些属性方法等等。
根据依赖倒转原则,待装饰的类和装饰者类都要实现自同一个抽象构件接口,在装饰者类的构造方法里要注入一个待装饰者对象,装饰者类和抽象构件接口是组合关系和接口实现关系,在装饰者类中提供一个可扩展的方法供子类重写。
具体的装饰者类继承抽象装饰者类,重写其扩展方法完成对待装饰对象的装饰!
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/15626927.html
欢迎来我的51CTO博客主页踩一踩 我的51CTO博客
文章中的公众号名称可能有误,请统一搜索:靠谱杨的秘密基地