`
darezhong
  • 浏览: 9303 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式学习之装饰模式

阅读更多

 1.名词解释:

装饰模式:动态的给一个对象添加一个额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式是为已有功能动态地添加更多功能的一种方式。

 

2.代码示例:

组件类:
package DesignPattern.DecoratorPattern;

public abstract class Component {

	public abstract void operation();
}

 

具体的对象接口类
package DesignPattern.DecoratorPattern;

public class ConcreateComponent extends Component {

	@Override
	public void operation() {
		// TODO Auto-generated method stub
		System.out.println("ConcreateComponent.operation is process...");
	}
}

 

装饰类:
package DesignPattern.DecoratorPattern;

public class Decorator extends Component{

    protected Component component;
	
	public void setComponent(Component component) {
		this.component = component;
	}
	
	@Override
	public void operation() {
		// TODO Auto-generated method stub
		if(this.component != null) {
			component.operation();
		}
	}
}

 

package DesignPattern.DecoratorPattern;

public class ConcreateDecoratorA extends Decorator{

	public void operation() {
		super.operation();
		System.out.println("ConcreateDecoratorA.operation is process...");
	}

}

package DesignPattern.DecoratorPattern;

public class ConcreateDecoratorB extends Decorator{

	public void operation() {
		super.operation();
		this.addBehavior();
		System.out.println("ConcreateDecoratorB.operation is process...");
	}
	
	private void addBehavior() {
		System.out.println("ConcreateDecoratorB.addBehavior is process...");
	}
}

 

主控程序类:
package DesignPattern.DecoratorPattern;

public class Client {

	public static void main(String[] args) {
		ConcreateComponent c = new ConcreateComponent();
		ConcreateDecoratorA d1 = new ConcreateDecoratorA();
		ConcreateDecoratorB d2 = new ConcreateDecoratorB();
		d1.setComponent(c);
		d2.setComponent(d1);
		d2.operation();
	}
}

 

分享到:
评论

相关推荐

    java设计模式学习之装饰模式

    Java 设计模式学习之装饰模式 在软件设计中,装饰模式是一种结构型设计模式,它可以动态地给一个对象添加一些额外的职责。装饰模式的主要优点是可以在不修改原有对象的情况下,给对象添加新的功能。这种模式可以...

    C#设计模式之Decorator 装饰模式

    在"C#面向对象设计模式纵横谈(10):(结构型模式) Decorator 装饰模式.pdf"中,你可能会学习到如何定义这些角色以及它们之间的关系。装饰模式的代码结构清晰,易于理解和实现。通过阅读文档,你可以理解如何在C#中...

    HeadFirst 设计模式学习笔记3--装饰模式 Demo

    在“HeadFirst 设计模式学习笔记3--装饰模式 Demo”中,作者通过实例讲解了装饰模式的基本概念、结构和应用场景。这篇文章可能是从CSDN博客平台上的一个链接访问的,遗憾的是,由于我们当前无法直接访问该链接,所以...

    JAVA设计模式学习12——装饰器模式

    装饰器模式是面向对象设计模式的一种,主要用于在不改变原有对象结构的情况下,动态地为对象增加新的功能。这种模式在Java中尤其常见,因为它允许我们遵循“开闭原则”——对扩展开放,对修改关闭。 装饰器模式的...

    设计模式之美—学习笔记

    在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...

    设计模式之装饰模式

    装饰模式是一种结构型设计模式,它允许我们向一个对象动态地添加新的行为或责任,而无需修改该对象...通过学习这些示例,你可以更深入地理解如何在C#中实现和应用装饰模式,以便在自己的项目中有效地利用这一设计模式。

    设计模式C++学习之装饰模式(Decorator)

    装饰模式(Decorator)是软件设计领域中一种非常实用的结构型设计模式,它允许我们向一个对象添加新的行为或责任,而无需修改该对象的源代码。在C++编程语言中,装饰模式常用于动态地扩展类的功能,使得类的行为在...

    java设计模式之装饰者模式代码

    装饰者模式是面向对象设计模式的一种,主要用于动态地给一个对象添加一些额外的职责,而不会改变该对象的类。这种模式允许我们独立于对象的类来扩展对象的功能,为对象提供新的行为,同时保持了代码的可读性和可维护...

    设计模式学习之装饰器模式.docx

    【装饰器模式】装饰器模式(Decorator Pattern)是一种设计模式,它允许在运行时向对象添加新的行为或职责,而不必修改对象的源代码。这种模式提供了比继承更灵活的方式来扩展对象的功能,避免了类的爆炸性增长。 ...

    设计模式学习报告

    ### 设计模式学习报告 #### 一、设计模式概述 设计模式是一种被广泛接受和使用的编程解决方案,旨在解决软件设计中的常见问题。它不仅能够帮助开发者编写出更易于理解和维护的代码,还能够促进代码的复用性。设计...

    设计模式学习 ppt

    这个“设计模式学习ppt”资料包显然是一份面向初学者或大学生的教学资源,通过十四个PPT文件深入浅出地讲解了设计模式的各个方面。 首先,我们来看设计模式的基本概念。设计模式是对在特定上下文中反复出现的问题...

    设计模式之美——教你写出高质量代码

    "设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...

    Java 经典设计模式讲解以及项目实战

    9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版方法+责任链+策略+工厂方法 3 动态代理+Spring AOP 4 责任链模式进阶 Spring Framework设计模式 ...

    设计模式学习笔记总结

    这里我们聚焦于C#语言中的设计模式学习笔记,涵盖了多种经典的设计模式,如合成模式、桥梁模式、装饰模式、享元模式、门面模式、命令模式、工厂方法、策略模式、代理模式以及状态模式。下面将对这些模式逐一进行详细...

    java设计模式学习

    本资料“java设计模式学习”包含了对设计模式的深入理解和实际应用,通过简单实用的例子,帮助开发者掌握如何在Java项目中运用设计模式。 首先,我们要介绍的是工厂模式。工厂模式是一种创建型设计模式,它提供了一...

    24种设计模式以及混合设计模式

    通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...

    23个设计模式之一的装饰ppt-java-极客学院

    Head First设计模式第三版的PDF是学习设计模式的经典书籍,它以易理解的方式介绍了包括装饰模式在内的23种设计模式。书中通过生动的例子和幽默的插图帮助读者深入理解每个模式的用途和实现。 此外,UML(统一建模...

    Head First 设计模式 +Java设计模式(第2版)

    这本书通过丰富的图像、故事和幽默的方式,引导读者了解23种经典的GoF(Gang of Four)设计模式,包括单例模式、工厂模式、观察者模式、装饰器模式、适配器模式、代理模式等。书中强调了如何在实际项目中选择和应用...

Global site tag (gtag.js) - Google Analytics