1.什么是装饰模式
装饰模式(Decorator),动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。装饰模式是为已有功能添加更多功能的一种方式。
2.为什么使用装饰模式
当系统需要新功能的时候,是向旧的类中添加新的代码。这些新的代码通常装饰了原有类的核心职责或主要行为,这种做法增加了主类的复杂度。而装饰模式可以很好的解决这个问题,它把每个需要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以根据需要有选择地、按顺序地使用装饰功能包装对象了。装饰模式最大的优点就是把类中的装饰功能从类中搬移出去,这样可以简化原有的类,并且把类的核心职责和装饰功能分开。
3.怎样使用装饰模式
Component接口
public interface Component {
public void operation();
}
ConcreteComponent类
public class ConcreteComponent implements Component {
public void operation(){
//具体对象的操作
//。。。。。。
}
}
Decorator类
public class Decorator implements Component {
public Component m_Component;
public void setComponent(Component m_Component){
this.m_Component = m_Component;
}
public void operation(){
if(null != m_Component){
m_Component.operation();
}
}
}
DecoratorA类
public class DecoratorA implements Decorator {
private String addedState;
public void operation(){
super.operation();//首先执行父类的操作
//再执行本类的功能......相当于对原来的功能进行了装饰
System.out.println(addedState);
}
}
DecoratorB类
public class DecoratorB implements Decorator {
//本类独有的方法
public void addBehavior(){
}
public void operation(){
super.operation();//首先执行父类的操作
addBehavior();//调用本类独有方法,相当于装饰
}
}
分享到:
相关推荐
本实验主要探讨了两种经典的设计模式:桥接模式(Bridge Pattern)和装饰模式(Decorator Pattern)。这两种模式都是面向对象设计中的重要工具,能帮助我们构建灵活且可扩展的代码。 **桥接模式**是一种结构型设计...
### C++装饰模式详解 #### 一、装饰模式概述 装饰模式(Decorator Pattern)是一种结构型设计模式,它允许向对象动态地添加新的功能而无需修改其结构。这种模式通过创建一个包装对象来包裹真实的对象,并在不改变...
适配器模式、装饰模式和代理模式 本文将详细介绍适配器模式、装饰模式和代理模式的概念、特点和应用场景,并通过实际的例子来阐述这三种模式的差异和相同点。 一、适配器模式 适配器模式是一种结构型设计模式,它...
- 如果过度使用装饰模式,会导致类的数量增多,从而增加系统的复杂度。 - 设计较为复杂,需要更多的类来维护相同的功能。 #### 六、总结 装饰设计模式是一种非常实用的设计模式,它能够在不改变原有类的情况下,...
#### 五、使用装饰模式改进奖金计算 使用装饰模式可以很好地解决上述问题。装饰模式的核心思想是通过继承和组合的方式,动态地为一个对象添加职责。在奖金计算的场景下,我们可以定义一个基础的奖金计算类,并通过...
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...
### 装饰模式在BUIW的应用 #### 一、装饰模式的引入与意义 在软件工程领域,装饰模式是一种常见的设计模式,它能够帮助开发者以一种灵活的方式来扩展对象的功能,而无需通过继承的方式修改其行为。装饰模式在BUIW...
- 装饰模式:动态地给一个对象添加一些新的行为,而不会改变其本质。 - 外观模式:为子系统提供一个统一的接口,简化客户端与其交互。 - 代理模式:为其他对象提供一种代理以控制对这个对象的访问。 3. 行为型...
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...
1. 装饰者设计模式-是什么 2. 装饰者设计模式-定义 3. 装饰者设计模式-模拟网关权限控制 4. 装饰者设计模式-测试
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...
这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细的类图、源代码以及文档报告,这对于学习和理解设计模式至关重要。 首先,我们要探讨...
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...