刚好看了个视频 关于装饰设计模式 觉得挺精辟的就保留了下来
什么是装饰设计模式:
当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。
如一个简单的demo 人吃饭,刚开始人穷只是普通的吃饭后来人生活好了吃饭就不一样了增强了吃饭的功能 虽然例子不是恰当 能说明问题就行
看代码:
//穷的时候吃饭简简单单的吃饭 class Person { public void chiFan(){ System.out.println("吃饭"); } } //富裕后吃饭 吃饭前来杯酒吃饭后来根烟 但是这中间的过程还是有吃饭 class SuperPerson { private Person p; public SuperPerson(Person p){ this.p=p; } public void superChiFan(){ //吃饭前来杯开胃酒增加食量 System.out.println("开胃酒"); p.chiFan(); //吃完饭后来根烟 System.out.println("来根烟"); } } public class PersonDemo { public static void main(String args[]){ Person p=new Person(); SuperPerson sp= new SuperPerson(p); sp.superChiFan(); } }
以上只是简单说明一下,在JAVA IO中用了很多增强 如:FileRead中read()方法 只是一个一个字节去读,为了读得更快在BufferedReader就增强了read()方法而产生了reandLine()一行一行的去读
有人说没必要那么麻烦:你只要拿superPerson继承person 在覆写person的chiFan()方法不就行了?
装饰是构造函数参数传递进行增强
如果为了某个功能而产生子类(继承)那么那个体系是非常臃肿的
例如:你有个对象有个功能 是在N年前建立的,如今你觉得功能不够用了 写个类把对象传进来就可以解决问题了 如果这个功能写错了 我就把自己写的功能去掉又不影响以前的功能灵活性相当强的。
装饰模式比继承要灵活。避免了继承体系臃肿。
而且降低了类于类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。
所以装饰类和被装饰类通常是都属于一个体系中的。
相关推荐
在Java中,设计模式分为三类:创建型模式、结构型模式和行为型模式。每种模式都有其特定的应用场景和优势,理解并熟练应用这些模式对于提升代码质量、提高开发效率具有显著作用。 1. 创建型模式: - 单例模式:...
装饰者模式是软件设计模式中的一种结构型模式,它...综上所述,装饰者模式在Java编程中是一种重要的设计模式,尤其适用于需要动态添加或删除对象功能的场景。通过以上示例和解释,我们可以更好地理解和应用装饰者模式。
Java作为一门广泛应用的开发语言,其设计模式的应用对于提高代码质量、可维护性和可扩展性至关重要。本文将着重探讨创建型模式、结构型模式和行为模式这三大类设计模式,并结合六项设计原则进行深入解析。 首先,...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的模板或蓝图。这些模式在软件工程中被广泛使用,因为它们代表了最佳实践,可以帮助开发者编写更可维护、可扩展和可复用的代码。下面将详细...
在Java中,装饰者模式通常涉及到继承和接口的使用。装饰者模式的核心思想是,定义一个抽象组件接口(Component),然后创建一个实现了这个接口的类(ConcreteComponent)。接着,创建一个抽象装饰者接口(Decorator...
在Java中,面向对象特性如封装、继承和多态为设计模式提供了坚实的基础。例如,装饰模式通过组合而非继承来动态地给对象添加新的行为或职责,这避免了类爆炸问题;而策略模式则利用接口和实现类的多态性,使算法的...
在《Java设计模式》这本书中,作者刘伟全面地介绍了24种经典的设计模式,并通过丰富的案例和代码示例进行了详细的解析。本书不仅适合初学者作为入门教材,也适合有一定经验的开发人员作为参考书籍来提升自己的设计...
在"JAVA设计模式之装饰模式代码"的示例中,我们可能会看到以下类结构: - `Component`:定义了装饰模式的基本接口,例如`Coffee`接口,包含了一些基本行为如`prepare()`。 - `Coffee`:实现了`Component`接口,代表...
本资料“java设计模式学习”包含了对设计模式的深入理解和实际应用,通过简单实用的例子,帮助开发者掌握如何在Java项目中运用设计模式。 首先,我们要介绍的是工厂模式。工厂模式是一种创建型设计模式,它提供了一...
### Java设计模式详解 在软件开发领域,设计模式是一种被广泛采用的解决方案,用来解决常见的设计问题。设计模式不仅能够帮助开发者写出可复用、可维护的代码,还能提高团队间的沟通效率。以下是对给定文件中提到的...
在编程领域,设计模式是解决常见问题的经过验证的、可重用的解决方案。它们是经验丰富的软件开发人员智慧的结晶,旨在提高代码的可读性、可维护性和...现在就打开“设计模式Java版”的压缩包,开始你的设计模式之旅吧!
在 Java 中,装饰器设计模式的实现通过继承和组合来实现。首先,我们定义一个接口,例如 Human 接口,定义了 wearClothes 和 walkToWhere 两个方法。然后,我们定义一个抽象类 Decorator,该类实现了 Human 接口,并...
在Java编程中,有23种经典的GoF(Gang of Four)设计模式,它们被分为三大类:创建型、结构型和行为型。本资源集合了这些模式的详细解释与源码分析,旨在帮助开发者深入理解和应用设计模式。 1. 创建型模式...
本高清教程深入浅出地讲解了Java中的各种设计模式,对于提升开发者的技术能力和面试表现具有显著帮助。 在Java设计模式的世界里,我们可以分为三大类:创建型、结构型和行为型模式。创建型模式关注对象的创建,如...
总结来说,Java设计模式的学习是一条不断深化的过程,它从UML开始,到设计模式的具体分类和应用,再到软件设计原则的领悟,每一步都是提升个人技术能力的重要环节。通过不断的学习和实践,开发者能够成为一名更加...
Elements of Reusable Object-Oriented Software),简称GOF,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者共同编写,书中总结了23种设计模式,被广泛认为是面向对象设计的经典之作。...
在这个名为"java设计模式程序源代码"的压缩包中,你将找到一系列的Java代码示例,用于解释和实现各种设计模式。 1. **单例模式**:单例模式确保一个类只有一个实例,并提供全局访问点。这种模式在需要控制实例数量...
在Java编程领域,设计模式是解决常见问题的模板,它们是经过时间和实践验证的最佳实践。以下是对Java中常用设计模式的详细解释: 1. **单例模式**:单例模式确保一个类只有一个实例,并提供一个全局访问点。这种...
**JAVA设计模式** 在软件工程领域,设计模式是一种在特定情境下解决问题的可复用解决方案。它们是经验的总结,代表了在特定上下文中被广泛接受的、经过时间考验的最佳实践。Java设计模式是面向对象编程中的一种重要...
Java作为面向对象的语言,特别适合应用设计模式,因为这些模式大多基于面向对象的特性,如封装、继承和多态性。 文档《设计模式列表.doc》很可能包含了各种常见的设计模式分类,如创建型模式(单例、工厂方法、抽象...