第02课:装饰器模式 我不是女神ヾ 2022-12-09 11:35 147阅读 0赞 > 装饰器模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 某一天隔壁老王赤果果地来到百货商店,打算给自己买一套装备,武装到牙齿。他买了衣服裤子和帽子,于是老王这样做: public class LaoWang { public void show(){ System.out.println("我穿上衣服,累计花费100元"); System.out.println("我穿上裤子,累计花费250元"); System.out.println("我穿上帽子,花费300元"); //........ //........ } } 但老王很快发现了问题,每买一件装备都要修改一次 show() 方法,违背了开闭原则。在前面的内容中已经解释过开闭原则:对扩展开放、对修改关闭。每增加一件装备都相当于扩展了一个功能,我们不应该用修改原方法的方式来扩展功能。 机智的老王学过设计模式,很快就想到了使用装饰器模式,装饰器模式动态地把功能附加到对象上。 装饰器模式类图: ![enter image description here][] 观察上图,装饰器模式中主要有两个角色: * 装饰器 * 被装饰的对象 用老王买装备的例子来说,老王就是被装饰的对象,而衣服裤子帽子等就是装饰器。 装饰器和被装饰的对象有两个特点 [enter image description here]: /images/20221123/db592c27c77c445c96d1ac57ba1bf4eb.png
相关 第02课:装饰器模式 > 装饰器模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 某一天隔壁老王赤果果地来到百货商店,打算给自己买一套装备,武装到牙齿。他买了衣服 我不是女神ヾ/ 2022年12月09日 11:35/ 0 赞/ 148 阅读
相关 装饰器模式 装饰器模式 <?php class BaseArticle{ protected $art = null; protected 我会带着你远行/ 2022年07月21日 01:28/ 0 赞/ 198 阅读
相关 装饰器模式 1 <?php 2 //装饰器模式-在不改变原有类的结构上,对类的功能那个作补充 3 4 //武器基类 5 abstract 秒速五厘米/ 2022年06月16日 00:00/ 0 赞/ 186 阅读
相关 装饰器模式 在学装饰器模式的时候,我想到了责任链模式中的级别这个概念,为什么这么说,在一个OA系统中我们会有不同级别(或者说权限范围不同)的管理员,首先我们要明确不同级别的管理员它也是管理 深碍√TFBOYSˉ_/ 2022年05月08日 06:14/ 0 赞/ 207 阅读
相关 装饰器模式 1、初识装饰器模式 装饰器模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。其结构图如下: ![watermark_type_ZmFuZ3poZW 小鱼儿/ 2022年04月24日 08:50/ 0 赞/ 233 阅读
相关 装饰器模式 ![Fpm6gbuGrUYHxqlnbEc-syPtY1Y3][] 什么是装饰器? 装饰器设计模式 > 装饰器模式(Decorator Pattern)允许向一个现有 ╰半橙微兮°/ 2022年04月21日 22:36/ 0 赞/ 216 阅读
相关 装饰器模式 一、基类 ![ContractedBlock.gif][] ![ExpandedBlockStart.gif][] /----------------------- £神魔★判官ぃ/ 2021年09月30日 08:42/ 0 赞/ 352 阅读
相关 装饰器模式 7.装饰器模式 ![70][] ![70 1][] class Program { static void Main( 拼搏现实的明天。/ 2021年09月16日 23:56/ 0 赞/ 321 阅读
相关 装饰器模式 ![5057999-ef364c6262961125.png][] image.png 意图: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模 超、凢脫俗/ 2021年09月12日 02:16/ 0 赞/ 358 阅读
相关 装饰器模式 饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种... 小灰灰/ 2020年06月13日 05:56/ 0 赞/ 761 阅读
还没有评论,来说两句吧...