设计模式--装饰者模式
来源:互联网 发布:java 反射 实例化单例 编辑:程序博客网 时间:2024/06/06 09:40
一、装饰者设计模式:增强一个类的功能,而且还可以让这些装饰类互相装饰。
装饰者设计模式的步骤:
1. 在装饰类的内部维护一个被装饰类的引用。
2. 让装饰类有一个共同的父类或者是父接口。
二、继承实现的增强类和修饰模式实现的增强类有何区别?
继承实现的增强类:
优点:代码结构清晰,而且实现简单.
缺点:对于每一个的需要增强的类都要创建具体的子类来帮助其增强,这样会导致继承体系过于庞大。
修饰模式实现的增强类:
优点:内部可以通过多态技术对多个需要增强的类进行增强, 可以是这些装饰类达到互相装饰的效果。使用比较灵活。
缺点:需要内部通过多态技术维护需要被增强的类的实例。进而使得代码稍微复杂。
三、案例
class A { A(参数){ //构造函数 } public MM(){ // 函数 }}//继承A类class B extends A{ A a;//父类接口 B(A a){ super(a);//如果是无参数就写super();此语句是避免代码报错,初始化父类 this.a=a;//本类初始化 } public MM(){ //B 的方法 }}class B1 extends A{ A a; B1(A a){ super(a); this.a=a; } public MM(){ //B1 的方法 }}...//其他类型的B类变量class C{ public static void main(String[] args){ A a=new A(变量); B b=new B(a); B1 b1=new B1(b); ... //利用相同的父类,相互调用,实现互相装饰 B 和B1 没有前后顺序 }}
0 0
- 设计模式-装饰者模式
- 设计模式:装饰者模式
- 设计模式:装饰者模式
- 设计模式: 装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式------------装饰者模式
- 设计模式--装饰者模式
- 设计模式:装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 【设计模式】装饰者模式
- 设计模式---装饰者模式
- 设计模式 装饰者模式
- 软硬连接
- 170502 汇编-CMOS和BCD码;pyqt-comboBox的多级联动
- windows pygraphviz安装
- 深度学习防止过拟合的方法
- 图片的二次采样
- 设计模式--装饰者模式
- 例题3-9环状序列
- MySQL可视化工具使用
- 蓝桥杯 出栈顺序 DP
- 关于数据库连接
- Codeforces 746E Numbers Exchange 模拟
- CSS常用布局之——等分等高解决方案
- 设计模式之建造者模式
- 选择排序