`

装饰着设计模式

阅读更多
装饰者设计模式定义:动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

装饰者特点:
     1、装饰着和被装饰着具有相同的超类型。

     2、通过构造函数注入被装饰对象。

     3、装饰者可以在被装饰者方法调用的前后加入自己的行为。这有点类似于静态代理。


实际上装饰者设计模式就是运用组合增强类的方法。java io类就大量应用到了装饰者模式。

代码:

   
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;

public class MyFileInputStream extends FilterInputStream{

	protected MyFileInputStream(InputStream in) {
		super(in);
	}

	@Override
	public int read() throws IOException {
		int i = super.read();
		return i==-1?i:Character.toLowerCase((char)i);
	}

	@Override
	public int read(byte[] b, int off, int len) throws IOException {
		int re = super.read(b, off, len);
		for(int i=off;i<re+off;i++){
			b[i] = (byte) Character.toLowerCase((char)b[i]);
		}
		return re;
	}
	
}


  
分享到:
评论

相关推荐

    装饰者设计模式

    装饰者设计模式是一种结构型设计模式,它允许在运行时给对象添加新的行为或职责,而无需修改对象的源代码。这种模式的核心在于通过包装(decorating)一个对象,为该对象添加额外的功能,同时保持原有接口不变,使得...

    01.装饰者设计模式和动态代理设计模式.wmv

    01.装饰者设计模式和动态代理设计模式.wmv

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

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

    设计模式--装饰者模式java例子

    装饰者模式是软件设计模式中的一种结构型模式,它的主要目的是动态地给对象添加新的功能,而无需修改原有代码。在Java中,装饰者模式通常通过继承和组合来实现,它提供了一种比继承更灵活的方式来扩展对象的功能。...

    装饰设计模式

    ### 装饰设计模式详解 #### 一、装饰设计模式概述 装饰设计模式(Decorator Pattern)是一种结构型设计模式,允许向对象动态地添加新功能。这种模式提供了一种替代继承的方式,使得我们可以在不修改原有类的基础上...

    设计模式-装饰者

    装饰者设计模式是一种结构型设计模式,它允许在运行时向对象添加新的行为或属性,而无需修改对象的源代码。这种模式的核心在于装饰者和组件接口是相同的,因此装饰者可以完全替代原对象,同时还能增加额外的功能,...

    设计模式-装饰者模式

    在“设计模式—装饰者模式”中,我们将深入探讨这个模式的概念、实现方式以及实际应用。 装饰者模式的核心概念在于“装饰”(Decorator)和“组件”(Component)。组件是被装饰的基本对象,它可以是接口或者抽象类...

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

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

    设计模式之装饰者模式,内含可运行代码

    总的来说,装饰者模式是一种强大的设计模式,它提供了一种在运行时动态调整对象行为的方法,使得代码更具灵活性和可扩展性。通过理解和熟练运用装饰者模式,我们可以更好地应对软件需求的变化,提高代码的可维护性和...

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

    创建型设计模式关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory)、抽象工厂模式(Abstract Factory)和建造者模式(Builder)。这些模式提供了一种灵活且可扩展的方式来创建和管理对象。 结构型...

    c# ,设计模式,装饰者模式,星巴兹咖啡

    装饰者模式是面向对象设计模式中的一个重要概念,它在C#等编程语言中广泛应用。这个例子以星巴克咖啡为例,展示了如何使用装饰者模式来灵活地扩展对象的功能,而无需修改原有代码。 装饰者模式的核心思想是动态地将...

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

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    设计模式课件大全

    设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、结构型模式大复习 设计模式11-行为模式-责任链、命令模式 设计模式12-解释器模式 设计模式13-迭代器模式 设计模式14-中介者模式...

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

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

    GOF设计模式中英文+设计模式精解中英文

    总之,GOF设计模式和设计模式精解是软件工程师的宝贵参考资料,无论你是初学者还是经验丰富的开发者,都应该熟悉和掌握这些模式,以便在项目中灵活运用,提高代码质量和可维护性。通过深入学习这些设计模式,不仅...

    设计模式 - 装饰者模式.rar

    装饰者模式是一种结构型设计模式,它允许在运行时向对象添加新的行为或职责,而无需修改对象本身。这种模式的核心思想是通过将对象包装在一个装饰类中来扩展功能,而不是通过继承。以下是对装饰者模式的详细阐述: ...

    Qt设计模式之装饰者模式

    **Qt设计模式之装饰者模式** 装饰者模式(Decorator Pattern)是软件设计模式中的结构型模式之一,它允许在运行时动态地给一个对象添加新的行为或职责,而无需修改对象本身。在Qt库中,装饰者模式也被广泛应用,...

    54-Spring设计模式之装饰器模式1

    Spring 设计模式之装饰器模式详解 在软件设计中,经常会遇到需要在不修改原有代码的情况下,添加新的功能或行为。这时,装饰器模式便可以发挥其作用。在 Spring 设计模式中,装饰器模式是非常重要的一种设计模式。 ...

    设计模式—装饰者模式

    装饰者模式(Decorator Pattern)是软件工程中一种用于动态地给一个对象添加额外职责的设计模式。它属于结构型模式,可以让我们在不改变对象自身的基础上,在运行时为对象添加新的功能,即“装饰”对象。这使得我们...

    软件设计模式—装饰者模式

    装饰者模式是面向对象设计中的一种行为模式,它允许在运行时给对象添加新的行为或职责,而无需改变其原始类。这种模式的核心思想是通过将对象包装在一个装饰类中来扩展其功能,装饰类与被装饰类具有相同的接口,因此...

Global site tag (gtag.js) - Google Analytics