zoukankan      html  css  js  c++  java
  • 设计模式课程 设计模式精讲 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  其他知识点

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

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

  • 相关阅读:
    钢镚开发的第7天
    钢镚儿开发的第六天
    钢镚儿开发的第五天
    钢镚儿开发第三、第四天
    4.18第九周学习进度
    人与神话阅读笔记02
    钢镚儿开发第二天
    热词云
    钢镚儿开发第一天
    [Usaco2006 Mar]Mooo 奶牛的歌声
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/11481492.html
Copyright © 2011-2022 走看看