`
laughingchs
  • 浏览: 69286 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

适配器模式与装饰者模式

 
阅读更多

适配器模式:将一个类的接口,转换成客户期望的另外一个接口。适配器让原本接口不兼容的类可以很好的合作。

 

 

装饰者模式:动态的将责任附加到对象上(因为利用组合而不是继承来实现,而组合是可以在运行时进行随机组合的)。若要扩展功能,装饰者提供了比继承更富有弹性的替代方案(同样地,通过组合可以很好的避免类暴涨,也规避了继承中的子类必须无条件继承父类所有属性的弊端)。

特点:

1. 装饰者和被装饰者拥有相同的超类型(可能是抽象类也可能是接口)

2. 可以用多个装饰类来包装一个对象,装饰类可以包装装饰类或被装饰对象

3. 因为装饰者和被装饰者拥有相同的抽象类型,因此在任何需要原始对象(被包装)的场合,都可以用装饰过的对象来替代它。

4. 装饰者可以在被装饰者的行为之前或之后,加上自己的附加行为,以达到特殊目的

5. 因为对象可以在任何的时候被装饰,所以可以在运行时动态地、不限量地用你喜欢的装饰者来装饰对象

PS:java.io库是最好的例子

小结:装饰者模式——动态地将责任附加到对象上。想要扩展功能,装饰者提供了有别于继承的另外一种选择。是一个很好的符合了开闭原则的设计模式。

 

 

总结:适配器模式主要是为了接口的转换,而装饰者模式关注的是通过组合来动态的为被装饰者注入新的功能或行为(即所谓的责任)。

 

 

外观模式:提供了一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。目地:让接口变得简单,是为了简化子系统的接口。

 

 

 

适配器将一个对象包装起来以改变其接口;装饰者将一个对象包装起来以增强新的行为和责任;而外观将一群对象包装起来以简化其接口

分享到:
评论

相关推荐

    2 适配器模式-课程内容.rar

    8. **适配器模式与其他设计模式的关系**:比较适配器模式与装饰者模式、代理模式等其他设计模式的异同。 9. **案例分析**:通过实际案例演示如何在项目中使用适配器模式,帮助理解其实际应用。 10. **设计原则**:...

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

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

    23种设计模式--适配器模式

    在实际开发中,适配器模式与其他设计模式如装饰器模式、桥接模式等经常结合使用,以达到更好的效果。理解并熟练运用适配器模式,能帮助开发者解决接口不兼容的问题,提高代码的可维护性和可扩展性。

    设计模式适配器模式PPT学习教案.pptx

    除了适配器模式,还有其他结构型模式,如桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。这些模式各自关注点不同,但都致力于提高代码的结构和可维护性。 桥接模式将抽象部分和实现部分解耦,使它们...

    【设计模式】设计模式源代码以及建模源文件,包括工厂模式、建造者模式、适配器模式、装饰器模式、模板设计模式、策略模式等.zip

    【设计模式】设计模式源代码以及建模源文件,包括工厂模式、建造者模式、适配器模式、装饰器模式、模板设计模式、策略模式等

    Python实现适配器模式、装饰器模式、代理模式.md

    Python实现适配器模式、装饰器模式、代理模式

    基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等

    Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子...

    设计模式之适配器模式(Adapter Pattern)

    适配器模式是软件设计模式中的一种,它的主要目的是解决接口不兼容问题,使得原本由于接口差异无法协同工作的类能够协同工作。在实际的软件开发过程中,我们常常遇到这样的情况:旧有的系统或第三方库提供了丰富的...

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

    装饰器模式与其他设计模式的比较 在 Spring 设计模式中,装饰器模式经常与其他设计模式比较。例如,代理模式、适配器模式和模板方法模式。 * 代理模式:代理模式和装饰器模式类似,但是代理模式更关心的是控制原有...

    51丨适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?1

    代理模式、桥接模式、装饰器模式和适配器模式虽然在代码结构上有些相似,但它们的核心目的和应用场景不同: - **代理模式**:为对象提供一个代理以控制对该对象的访问,如远程代理、虚拟代理、缓存代理等。 - **...

    适配器模式

    在软件工程中,当系统中存在一个接口或类与现有系统、库或组件不匹配时,适配器模式能解决这种问题,使得原本无法协同工作的组件能够协同工作。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,...

    java中设计模式之适配器模式

    适配器模式与装饰者模式的区别在于它们的目的不同。装饰者模式是为了在不改变原有对象的基础上,动态地添加新的行为或属性,而适配器模式则是为了改变对象的接口,使其适应新的使用环境。 总的来说,适配器模式在...

    NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】

    以下是对四种设计模式——单例模式、适配器模式、装饰模式和观察者模式的详细说明。 1. **单例模式**: 单例模式确保一个类只有一个实例,并提供全局访问点。在NodeJS中,单例模式常用于管理共享资源,如数据库...

    23种设计模式详解PDF

    适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式(11): 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、...

    设计模式-C++

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

    23种设计模式项目实例

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

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

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

    java常用23中设计模式

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

    Java设计模式之适配器模式和外观模式

    适配器模式改变了接口以满足客户的期望,而装饰者模式则是在保持接口不变的情况下增加新的行为和责任。外观模式则简化了子系统的接口,使客户可以更轻松地使用。这两者都是软件设计中非常实用的工具,能够帮助我们...

Global site tag (gtag.js) - Google Analytics