广告
返回顶部
首页 > 资讯 > 精选 >Java设计模式的装饰器模式怎么实现
  • 145
分享到

Java设计模式的装饰器模式怎么实现

2023-06-30 08:06:16 145人浏览 薄情痞子
摘要

本文小编为大家详细介绍“Java设计模式的装饰器模式怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式的装饰器模式怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是装饰器模式装饰器

本文小编为大家详细介绍“Java设计模式的装饰器模式怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式的装饰器模式怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    什么是装饰器模式

    装饰器(Decorator)模式的定义: 指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。

    优点

    装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用

    通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果 3、装饰器模式完全遵守开闭原则

    缺点

    装饰器模式会增加许多子类,过度使用会增加程序得复杂性。

    知识点

    通常情况下,扩展一个类的功能会使用继承方式来实现。但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。如果使用组合关系来创建一个包装对象(即装饰对象)来包裹真实对象,并在保持真实对象的类结构不变的前提下,为其提供额外的功能,这就是装饰器模式的目标。下面来分析其基本结构和实现方法。

    装饰器模式实现

    案例: 黑小虎抓住了七侠,还要把虹猫烤了

    抽象构件(Component)角色:七侠

    具体构件(ConcreteComponent)角色:虹猫

    抽象装饰(Decorator)角色:加料

    具体装饰(ConcreteDecorator)角色:加盐、加孜然。

    七侠

    七侠接口,声明一个烧烤抽象方法

    public interface Qi {    void show();}

    虹猫

    虹猫类实现七侠接口,并且实现了烤虹猫的方法

    public class Hong implements Qi {    @Override    public void show() {        System.out.println("烧烤一个虹猫");    }}

    加料

    这就是一个抽象的装饰器,实现了七侠接口,声明一个七侠属性,用来调用七侠的烧烤方法

    public class JiaLiao implements Qi {    private Qi qi;    JiaLiao() {    }    JiaLiao(Qi component) {        this.qi = component;    }    @Override    public void show() {        qi.show();    }}

    加盐

    继承了抽象类,并且重写了烧烤方法,加了一个盐

    public class Yan extends JiaLiao {    private Qi qi;    Yan() {    }    Yan(Qi qi) {        super(qi);    }    @Override    public void show() {        super.show();        add();    }    public void add() {        System.out.println("加盐");    }}

    加孜然

    继承了抽象类,并且重写了烧烤方法,加了一个孜然

    public class ZiRan extends JiaLiao {    private Qi qi;    ZiRan() {    }    ZiRan(Qi qi) {        super(qi);    }    @Override    public void show() {        super.show();        add();    }    public void add() {        System.out.println("加孜然");    }}

    测试

    new一个虹猫,把它烤了。

    加点盐

    加点盐和孜然

    public class Demo {    public static void main(String[] args) {        Qi qi = new Hong();        qi.show();        System.out.println();        Qi qi1 = new Yan(qi);        qi1.show();        System.out.println();        Qi qi2 = new ZiRan(qi1);        qi2.show();    }}

    Java设计模式的装饰器模式怎么实现

    读到这里,这篇“Java设计模式的装饰器模式怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Java设计模式的装饰器模式怎么实现

    本文链接: https://www.lsjlt.com/news/327769.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Java设计模式的装饰器模式怎么实现
      本文小编为大家详细介绍“Java设计模式的装饰器模式怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式的装饰器模式怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是装饰器模式装饰器...
      99+
      2023-06-30
    • Java设计模式之装饰器模式
      本文由老王将建好的书房计划请小王来帮忙,小王却想谋权篡位,老王通过教育他引出装饰器设计模式,第二部分针对老王提出的建设性意见实现装饰器模式,第三部分针对装饰器模式在Jdk中的IO、S...
      99+
      2022-11-13
    • python设计模式之装饰器模式怎么实现
      今天小编给大家分享一下python设计模式之装饰器模式怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。装饰器模式装饰器...
      99+
      2023-06-30
    • Java结构型设计模式之装饰模式怎么实现
      这篇文章主要介绍“Java结构型设计模式之装饰模式怎么实现”,在日常操作中,相信很多人在Java结构型设计模式之装饰模式怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java结构型设计模式之装饰模式怎...
      99+
      2023-07-05
    • Java设计模式中的装饰者模式
      目录模式介绍UML类图装饰者模式案例装饰者模式优点装饰者模式缺点模式介绍 23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和...
      99+
      2022-11-13
    • java 中设计模式(装饰设计模式)的实例详解
      java 中设计模式(装饰设计模式)的实例详解应用场景:在不对原有对象类进行修改的基础上,给一个或多个已有的类对象提供增强额外的功能. 我觉得可以从字面理解,装饰,装饰房子。房子可以看成原有的类。等于你把一个已经建好的房子按照自己的想法再装...
      99+
      2023-05-31
      java 装饰模式 ava
    • Java设计模式之装饰模式详解
      目录一、装饰模式引入例子1.1 一般设计1.2 使用继承方式的一般设计存在的问题二、装饰模式2.1 装饰(Decorator)模式中的角色2.2 装饰模式改进设计UML2.3 装饰模...
      99+
      2022-11-12
    • java设计模式-装饰者模式详解
      目录引例一般解法装饰者模式装饰者解法代码:抽象类装饰者被装饰者客户端测试总结:引例 需求:设现在有单品咖啡:Espresso(意大利浓咖啡)和LongBlack(美式咖啡),调料有M...
      99+
      2022-11-12
    • java设计模式学习之装饰模式
      装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。缺点:多层装饰比较复杂。实例:给...
      99+
      2023-05-31
      java 设计模式 装饰模式
    • 详解Java设计模式中的装饰模式
      目录一、装饰模式的定义和特点二、装饰模式的结构三、咖啡点单案例演示四、总结一、装饰模式的定义和特点 在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在...
      99+
      2022-11-12
    • python设计模式之装饰器模式
      目录装饰器模式python 装饰器语法糖装饰器模式 装饰器模式解决什么问题? 增加新功能,且不改变原有功能和代码选配,根据不同情况,动态调整功能 装饰器,顾名思义,就是用来装饰其他实...
      99+
      2022-11-11
    • C#设计模式之适配器模式与装饰器模式的实现
      目录结构型设计模式适配器模式实现代码总结装饰器模式实现代码结构型设计模式 创建型设计模式主要是为了解决创建对象的问题,而结构型设计模式则是为了解决已有对象的使用问题。 适配器模式 适...
      99+
      2022-11-13
    • Java设计模式之java装饰者模式详解
      目录介绍角色示例代码星巴克咖啡的例子方案一方案二 :将调料内置到Drink类中方案三:装饰者模式代码演示装饰者模式的简化透明性的要求半透明的装饰模式装饰模式的优点装饰模式的缺点装饰模...
      99+
      2022-11-12
    • .Net结构型设计模式之装饰模式怎么实现
      这篇文章主要介绍“.Net结构型设计模式之装饰模式怎么实现”,在日常操作中,相信很多人在.Net结构型设计模式之装饰模式怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.Net结构型设计模式之装饰模式怎...
      99+
      2023-06-30
    • Java设计模式之装饰者模式详解
      目录具体代码:Person:Student:Doctor:DecoratePerson:ShoeDecorate:DressDecorate:总结 装饰器模式(Decorator P...
      99+
      2022-11-12
    • 如何理解Java设计模式的装饰模式
      这篇文章主要介绍“如何理解Java设计模式的装饰模式”,在日常操作中,相信很多人在如何理解Java设计模式的装饰模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Java设计模式的装饰模式”的疑惑有所...
      99+
      2023-06-25
    • javascript设计模式之装饰者模式怎么用
      这篇文章主要为大家展示了“javascript设计模式之装饰者模式怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript设计模式之装饰者模式怎...
      99+
      2022-10-19
    • 深入理解Java设计模式之装饰模式
      目录一、前言二、什么是装饰模式1.定义:2.意图3.别名4.动机5.作用6.问题三、装饰模式的结构四、装饰模式的使用场景五、装饰模式的优缺点六、装饰模式的实现七、装饰模式的.NET应...
      99+
      2022-11-12
    • C++实现设计模式之装饰者模式详解
      目录设计模式和设计原则装饰者模式中的类案列描述代码实现总结设计模式和设计原则 装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者模式提供了比继承更有弹性的替代方案。 装饰者模式...
      99+
      2022-11-12
    • Java中常用的设计模式之装饰器模式详解
      目录优点缺点使用场景一、实现方式二、测试总结优点 1.装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。 缺点 2.多层...
      99+
      2022-11-13
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作