`
bolan392
  • 浏览: 278090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

五、装饰模式

 
阅读更多

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++装饰模式

    ### C++装饰模式详解 #### 一、装饰模式概述 装饰模式(Decorator Pattern)是一种结构型设计模式,它允许向对象动态地添加新的功能而无需修改其结构。这种模式通过创建一个包装对象来包裹真实的对象,并在不改变...

    适配器模式,装饰模式和代理模式1

    适配器模式、装饰模式和代理模式 本文将详细介绍适配器模式、装饰模式和代理模式的概念、特点和应用场景,并通过实际的例子来阐述这三种模式的差异和相同点。 一、适配器模式 适配器模式是一种结构型设计模式,它...

    装饰设计模式

    - 如果过度使用装饰模式,会导致类的数量增多,从而增加系统的复杂度。 - 设计较为复杂,需要更多的类来维护相同的功能。 #### 六、总结 装饰设计模式是一种非常实用的设计模式,它能够在不改变原有类的情况下,...

    java装饰模式

    #### 五、使用装饰模式改进奖金计算 使用装饰模式可以很好地解决上述问题。装饰模式的核心思想是通过继承和组合的方式,动态地为一个对象添加职责。在奖金计算的场景下,我们可以定义一个基础的奖金计算类,并通过...

    23种设计模式 -设计模式图解.7z

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    装饰模式在BUIW的应用

    ### 装饰模式在BUIW的应用 #### 一、装饰模式的引入与意义 在软件工程领域,装饰模式是一种常见的设计模式,它能够帮助开发者以一种灵活的方式来扩展对象的功能,而无需通过继承的方式修改其行为。装饰模式在BUIW...

    设计模式相关资料设计模式相关资料

    - 装饰模式:动态地给一个对象添加一些新的行为,而不会改变其本质。 - 外观模式:为子系统提供一个统一的接口,简化客户端与其交互。 - 代理模式:为其他对象提供一种代理以控制对这个对象的访问。 3. 行为型...

    设计模式-C++

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...

    weekyuan#design-patterns#笔记五 装饰者设计模式1

    1. 装饰者设计模式-是什么 2. 装饰者设计模式-定义 3. 装饰者设计模式-模拟网关权限控制 4. 装饰者设计模式-测试

    23种设计模式项目实例

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...

    设计模式(包含5个设计模式)含源代码报告.rar

    这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细的类图、源代码以及文档报告,这对于学习和理解设计模式至关重要。 首先,我们要探讨...

    java常用23中设计模式

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    23种设计模式实例

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    Java23种设计模式可直接运行Demo

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    23种设计模式java源码

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

Global site tag (gtag.js) - Google Analytics