设计模式07-装饰模式,Decorator)

技术设计模式07-装饰模式,Decorator) 设计模式07-装饰模式(Decorator)通过实现与被装饰类实现的相同接口或父类,并将被装饰类作为属性注入到装饰器对象中来完成对装饰器模式的应用。装饰

设计模式07-装饰者模式。

通过实现与修饰类相同的接口或父类,并将修饰类作为属性注入到修饰对象中,修饰模式的应用就完成了。

装饰器模式的重点是调用者不知道整个过程,仍然调用最初实现的接口或父类方法。

设计模式07-装饰模式(Decorator)

概述

通过实现与修饰类相同的接口或父类,并将修饰类作为属性注入到修饰对象中,修饰模式的应用就完成了。

装饰器模式的重点是调用者不知道整个过程,仍然调用最初实现的接口或父类方法。

和适配器模式的比较

装饰器和适配器有一个别名叫做Wrapper,它看起来像是包装一个类或对象,但是它们有不同的用途。

适配器模式的含义是将一个接口转换成另一个接口,其目的是通过改变接口来达到复用的目的。

装饰器模式不是改变被装饰对象的接口,而是保留原有的接口,而是增强原有对象的功能,或者改变原有对象的处理方式来提高性能。

所以这两种图案的设计目的是不一样的。

简单实践

JDK实现

1.有一个接口Source及其实现类codingSourceImpl。如果想要修改execute函数,而不修改现有的类并通过Source类型的声明调用它,可以使用decorator模式。

公共接口来源{

void execute();

}

公共类SourceImpl实现了Source {

@覆盖

public void execute(){ 0

}

}

2.创建一个SourceImpl的装饰器类,实现Source接口,并把要装饰的Source类型的实现类作为一个属性。

公共类SourceDecorator实现了源代码{

私人最终来源来源;

SourceDecorator(源代码){ 0

super();

this.source=source

}

@覆盖

public void execute(){ 0

source . method();

}

}

3.调用装饰器类SourceDecorator的示例如下:

公共类DecoratorPattern(

公共静态void main(String[]args){ 0

source source=new source impl();

source decorator=source decorator . builder()。来源(来源)。build();

decorator . execute();

}

}

源码解析

JDK InputStream流

java.io.FilterInputStream

公共类FilterInputStream扩展了InputStream {

InputStream中受保护的易失性;

受保护的FilterInputStream(InputStream in){ 0

this.in=in

}

FilterInputStream通过持有实现相同父类的对象来增强对象的功能。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/53728.html

(0)

相关推荐

  • python怎么制作自己的一个图形(python图形绘制的代码)

    技术Python 图形绘制详细代码怎么写这篇文章给大家介绍Python 图形绘制详细代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、条形图下面介绍条形图的画法。1.1 代码import

    攻略 2021年12月23日
  • 圆锥的体积公式是什么,锥形的体积的计算公式是什么

    技术圆锥的体积公式是什么,锥形的体积的计算公式是什么圆锥体体积计算:根据圆柱体积公式V=Sh(V=πr²h)圆锥的体积公式是什么,得出圆锥体积公式:V=1/3sh,其中S是圆柱的底面积,h是圆柱的高,r是圆柱的底面半径。

    生活 2021年10月21日
  • 织梦火车站和discuz哪个好(织梦模板和discuz区别)

    技术织梦是如何与discuz论坛整合一起应用本篇文章为大家展示了织梦是如何与discuz论坛整合一起应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  成功在DedeCMS 5

    攻略 2021年12月22日
  • 如何用PX2对H.264进行硬编码[CODE_PX2]Encode_H264

    技术如何使用PX2硬编码H.264 [CODE_PX2]Encode_H264本篇文章给大家分享的是有关如何使用PX2硬编码H.264 [CODE_PX2]Encode_H264,小编觉得挺实用的,因此分享给大家学习,希

    攻略 2021年12月22日
  • 淘宝账户注册,怎样申请淘宝帐号?(详细过程)

    技术淘宝账户注册,怎样申请淘宝帐号?(详细过程)一)免费注册.1.登录淘宝网页面淘宝账户注册,点击“免费注册”链接;2.进入注册页面,填写会员名(5-20个字符)、密码(6-16个英文字母、数字或符号组成);3.输入一个

    生活 2021年10月26日
  • Java自定义序列化行为的示例分析

    技术Java自定义序列化行为的示例分析这篇文章给大家分享的是有关Java自定义序列化行为的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正常情况下,一个类实现java序列化很简单,只需

    攻略 2021年12月3日