设计模式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)

相关推荐

  • 什么是进程间通信

    技术什么是进程间通信这篇文章主要介绍“什么是进程间通信”,在日常操作中,相信很多人在什么是进程间通信问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是进程间通信”的疑惑有所帮助!接下来,

    攻略 2021年10月23日
  • HBase默认配置是什么

    技术HBase默认配置是什么小编给大家分享一下HBase默认配置是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!hbase.rootdir

    攻略 2021年12月9日
  • VB.NET如何启动拨号网络中的连接

    技术VB.NET如何启动拨号网络中的连接这篇文章将为大家详细讲解有关VB.NET如何启动拨号网络中的连接,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VB.NET网络技巧案例:启动拨号

    攻略 2021年12月2日
  • 混凝土试块强度评定,混凝土试块评定方法标准差怎么算

    技术混凝土试块强度评定,混凝土试块评定方法标准差怎么算评定水泥混凝土的抗压强度,应以标准养生28d 龄期的试件为准。试件为边长150mm 的立方体。试件3 件为1组。水泥混凝土抗压强度的合格标准混凝土试块强度评定:一、试

    生活 2021年10月25日
  • 怎么分析Div+CSS网站设计的优点

    技术怎么分析Div+CSS网站设计的优点这期内容当中小编将会给大家带来有关怎么分析Div+CSS网站设计的优点,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Div+CSS网站设计的优点

    攻略 2021年11月11日
  • LEARNING INVARIANT REPRESENTATIONS FOR REINFORCEMENT LEARNING WITHOUT RECONSTRUCTION

    技术LEARNING INVARIANT REPRESENTATIONS FOR REINFORCEMENT LEARNING WITHOUT RECONSTRUCTION LEARNING INVAR

    礼包 2021年11月1日