• 23种设计模式(十)装饰者模式(阁瑞钛伦特软件-九耶实训)


    我也常说的设计模式是23种设计模式,分为3大类:

    • 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
    • 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
    • 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

            上次咱们说了“桥接模式”。今天咱们聊一聊结构型模式中的“装饰者模式”。

    结构型模式重点在于结构的变化。

     

    “装饰者模式”关键在于“装饰”,也就是在原有基础上,增加功能方法的结构设计。

    接口

    接口的实现类

    如果以上作为“核心操作”。下面就要写“装饰”的结构了。

    先建立一个抽象类实现接口,并实现接口中的实现方法(operation)。抽象类里组建了使用接口的属性,通过构造函数执行赋值对象。(Component com属性)。

    抽象类里用到了“operation()”方法“递归”操作,如果你能仔细看,它的操作,只是不断的调用com对象的方法。当“装饰”里没有组件的Component属性的对象了就不会去调用了。为的是多重的“装饰”的解析而准备的。

    装饰器的实现类ConcreteDecoratorA

     

    装饰器的实现类ConcreteDecoratorB

     

    在使用的时候  ConcreteDecoratorB的对象装饰ConcreteDecoratorA的对象装饰ConcreteComponent对象。调用operation()方法后,由于递归的作用有多少层次的装饰就有多少层的输出。这样装饰的功能一一展现。

     

    今天设置一个场景,“孙悟空”的七十二变,变什么像什么,变成鸟它会飞,变成鱼它会游,但是无论变成生么都改不了猴子的本质。我们用装饰者模式来体现这一个过程。

     

    “王”的接口,设置了类型的属性,和变化的抽象行为。 

     

     

    实现接口的猴王类。

     

    孙悟空拥有七十二变的能力,这一能力就是“装饰器”体现。

     

     

    实现可装饰的鱼

     

     

    实现可装饰的鸟

     

    实现调用,孙悟空的对象为“核心对象”,装饰成鸟,再装饰成鱼,再装饰成鸟,可以飞。

     

     

     但是实际仍然是猴

     

  • 相关阅读:
    QueryWrapper里执行mysql函数
    【MySQL数据库原理】MySQL Community 8.0界面工具汉化
    C语言中,可变参数函数调用的过程?!
    Redis 学习笔记
    Day13交换机基本命令、IP包头、路由原理
    使用Filter AND Interceptor校验等录(全网独一份,机不可失)
    Spring中如何获取JavaBean呢?
    ECharts数据可视化项目【10】
    数据提取/数据获取/爬虫—工具篇—影刀
    openssl生成自签名证书
  • 原文地址:https://blog.csdn.net/m0_69234258/article/details/126122610