装饰模式 àì夳堔傛蜴生んèń 2022-02-23 14:40 204阅读 0赞 1、一个相片放入了相框,那么相框装饰了相片。相片相当于component类,相框相当于Decorator类。我们可以发现,相框里面包含一个相片,所以有了一个has-a的关系;但是,当相框里面拥有了相册以后,我们很多时候就把相框的这个整体当作相片来使用了,所以,此时相框本身却变成了一个“相片”了,也就勉强有了一个is-a的关系。 2、装饰模式的组成: 1) 抽象构件角色(Component):定义一个抽象接口,以规范准备接收附加责任的对象。 2) 具体构件角色(Concrete Component):这是被装饰者,定义一个将要被装饰增加功能的类。 3) 装饰角色(Decorator):持有一个构件对象的实例,并定义了抽象构件定义的接口。 4) 具体装饰角色(Concrete Decorator):负责给构件添加增加的功能。 3、我想顺序是这样的,一般如果用到了装饰模式,很容易知道哪一个是“具体的构建角色”,也就是被“装饰者”;也很容易知道“具体的装饰角色”;此时便是通过一系列的抽象,把两者的关系建立起来,以提供共同的接口。以为装饰者会有很多,这是一个变化,所以我们先把他们的变化抽象出来,形成统一的父类接口,也就是抽象的“装饰角色”。然后就是建立抽象的“装饰角色”和“具体的构建角色”之间的关系了,因为留着也具体统一的接口,所以,可以把他们的统一接口抽象出来,形成统一的父类,也就是“抽象构建角色”。 **4、使用装饰模式的情况:** 1 需要扩展一个类的功能,或者给一个类增加附加责任 2 需要动态地给一个对象增加功能,这些功能可以再动态地撤销 3 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变得不现实 **5、装饰模式的优缺点:** 1 装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供更多的灵活性 2 通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合 3 装饰模式比继承更加容易出错 4 装饰模式相比继承产生较少的类,但同时生成更多的对象 并且这些对象看上去都比较相似 **6、简化装饰模式** 1 装饰类接口必须与被装饰类接口相容(ConcreteDecorator类必须继承自同一父类Component) 2 尽量保持Conponent作为一个“轻”类(可以是接口 也可以是抽象类 具体类) 3 若没有Component抽象类 只有ConcreteConponent 则Decorator类通常可以是其子类 4 若ConcreteDecorator类数目比较多,就有使用一个单独Decorator类来区分抽象和具体职责的必要,肉则可以将Decorator和ConcreteDecorator合并
相关 装饰模式 转载自:[http://blog.csdn.net/wuzhekai1985/article/details/6672614][http_blog.csdn.net_wuzhe 向右看齐/ 2022年08月11日 08:29/ 0 赞/ 192 阅读
相关 装饰模式 装饰模式 1、他所应对的问题 装饰模式主要是应对,按现有业务返回的结果,无法满足新的业务的需要了。而新的业务只是在原有结果上进行了变动。 真的这种情况 如 悠悠/ 2022年07月17日 15:26/ 0 赞/ 225 阅读
相关 装饰模式 装饰模式 装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 即通过不同的组合方式,可以组合出各种不同的行为。 装饰模式结构图如 浅浅的花香味﹌/ 2022年06月05日 01:25/ 0 赞/ 208 阅读
相关 装饰模式 1.使用场景: 在已有的功能上边需要动态的添加新的功能。 2.UML表示 在装饰器模式中通常用以下的几类对象: 抽象构件角色(Project):给出一个接口, 骑猪看日落/ 2022年05月31日 09:27/ 0 赞/ 249 阅读
相关 装饰模式 定义 装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类模式更加灵活。 结构图 ![这里写图片描述][70] 装饰模式的简化: - 日理万妓/ 2022年05月14日 11:28/ 0 赞/ 233 阅读
相关 装饰模式 1、一个相片放入了相框,那么相框装饰了相片。相片相当于component类,相框相当于Decorator类。我们可以发现,相框里面包含一个相片,所以有了一个has-a的关系;但 àì夳堔傛蜴生んèń/ 2022年02月23日 14:40/ 0 赞/ 205 阅读
相关 装饰模式 Decorator装饰模式是一种结构型模式,它主要是解决:“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩 本是古典 何须时尚/ 2022年02月23日 14:38/ 0 赞/ 219 阅读
相关 装饰模式 概述 23种设计模式之一,英文叫DecoratorPattern,中文也叫装饰模式、修饰模式。装饰模式是在不改变类文件和不使用继承的情况下,运行期动态扩展一个对象的功能。 迷南。/ 2022年02月16日 19:11/ 0 赞/ 208 阅读
相关 装饰模式 前言 装饰模式(Decorator),动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 一、Component抽象类 绝地灬酷狼/ 2021年12月09日 00:43/ 0 赞/ 251 阅读
相关 装饰模式 有抽象类名为早餐,现在具体的食物只需继承早餐抽象类,就可以作为早餐。 具体构件类,如只有breakfast抽象类和Hamburger类,满足需求。 如果需求改变,hamb 分手后的思念是犯贱/ 2021年09月28日 07:06/ 0 赞/ 308 阅读
还没有评论,来说两句吧...