• 设计模式课程 设计模式精讲 11-1 装饰者模式讲解


    1    课程讲解

    1.1  类型

    1.2  定义

    1.3  应用场景

    1.4  优点

    1.5  缺点

    1.6  关联设计模式

    1.7  其他知识点

    1    课程讲解
    1.1  类型

    结构型

    1.2  定义

    ◆定义:在不改变原有对象的基础之上,将功能附加到对象上

    提供了比继承更有弹性的替代方案(扩展原有对象功能)

    比如说:我买蛋糕的时候加草莓还是芒果,我烧饼加火腿,鱼豆腐还是鸡蛋

    1.3  应用场景

    ◆扩展一个类的功能或给一个类添加附加职责

    动态的给一个对象添加功能,这些功能可以再动态的撤销

    1.4  优点

    ◆继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能
    ◆通过使用不同装饰类以及这些装饰类的排列组合,可以实现不同效果

    符合开闭原则

    1.5  缺点

    ◆会出现更多的代码,更多的类,增加程序复杂性
    ◆动态装饰时,多层装饰时会更复杂

    1.6  关联设计模式

    装饰者模式和代理模式:

    a  装饰者模式关注动态的添加方法,代理模式关注于控制对对象的访问,

    b  代理模式中的代理类可以对它的客户隐藏一个对象的具体信息,通常在使用代理模式的时候常常在代理类中创建一个对象的实例,装饰者模式通常把原始对象作为一个参数传入装饰者的构造器,这是使用上的不同。

    ◆装饰者模式和适配器模式

    两者都是包装者模式,前者装饰者是原始对象的子类,后者适配器和原始对象有不同的接口

    1.7  其他知识点

    装饰者本身也实现了继承,继承是扩展形式之一,不见得能达到弹性设计的最佳方式,

    装饰者模式做的,是把类中的装饰功能从类中移出去,简化了原来被装饰的类,同时把类的核心功能和类的装饰功能区分开,还可以去除不同类中重复的装饰逻辑

  • 相关阅读:
    button 垂直分布
    GitHub上值得关注的iOS开源项目
    电脑连接网络(网络正常),但不能上网,登录网页提示dns_probe_finished_no_internet
    android 模拟应用因内存不足被后台杀死命令
    android 屏幕划分
    android 没有root的手机导出数据库
    移动硬盘不能识别,设备管理器中显示黄色感叹号
    低功耗蓝牙开发(BLE)
    音视频学习笔记
    Java中为什么要使用线程池?如何使用?
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/11481492.html
Copyright © 2020-2023  润新知