装饰者模式: 我们可以通过继承和组合的方式来给一个对象添加行为,虽然使用继承能够很好拥有父类的行为,但是它存在几个缺陷: 一、对象之间的关系复杂的话,系统变得复杂不利于维护。 二、容易产生“类爆炸”现象。 三、是静态的。在这里我们可以通过使用装饰者模式来解决这个问题。 装饰者模式,动态地将责任附加到 ...
分类:
其他好文 时间:
2016-04-20 20:11:28
阅读次数:
219
版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 多个主题对象,每个主题对象都有三个观察者,感觉有点问题,说不好。有问题请提出来。 [cpp] view plain copy print? /* 观察者模式:定义一种一对多的依赖,让多个观察者 ...
分类:
编程语言 时间:
2016-04-19 14:20:09
阅读次数:
185
装饰者设计模式:简单定义:增强一个类的功能,而且还可以让这些装饰类互相装饰。 应用场景:当要在某个功能的基础上扩充功能,并且扩充的功能具有大量排列组合,通过继承关系会衍生出大量子类,这时候用装饰者模式来解决。 装饰者设计模式的步骤: 1. 在装饰类的内部维护一个被装饰类的引用。 2. 让装饰类有一个 ...
分类:
编程语言 时间:
2016-04-19 00:05:35
阅读次数:
188
1 首先还是介绍装饰者模式的定义 装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方式。 设计原则: 开放关闭。类对扩展开放,对修改关闭。 利用继承设计子类的行为,是在编译时静态决定的,而且所有子类都会继承相同的行为,然而,如果能够利用组合的方式扩展对象的行为,就 ...
分类:
其他好文 时间:
2016-04-18 18:44:41
阅读次数:
117
一 什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。二 设计原则要学会设计模式,首先要了解设计模式所依托的设计原则:(1)单一职责原则(SRP原则):一个对象(方法)只做一件事情。
运用的设计模式:代理模式,单例模式,装饰者模式等。(2)最少知识原则(L...
分类:
编程语言 时间:
2016-04-17 23:08:13
阅读次数:
220
Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 要点: 1、装饰者和被装饰对象有相同的超类型。 2、可以用一个或多个装饰 ...
分类:
其他好文 时间:
2016-04-15 18:27:52
阅读次数:
168
今天继续设计模式之旅,给大家带来装饰者模式,国际惯例,先看定义。 装饰者模式:若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上。 先简单描述下装饰者模式发挥作用的地方,当我们设计好了一个类,我们需要给这个类添加一些辅助的功能,并且不希望改变这个类的代码,这时候就是装饰者模 ...
分类:
其他好文 时间:
2016-04-14 11:57:15
阅读次数:
273
概述 概述 23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰模式的特点 (1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真 ...
分类:
其他好文 时间:
2016-04-13 18:56:03
阅读次数:
210
装饰模式(Decorator) 定义 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 类图 描述 Component:被装饰者和装饰者共有的基类; ConcreteComponent:被装饰者的具体类; Decorator:装饰类,包 ...
分类:
其他好文 时间:
2016-04-12 19:07:46
阅读次数:
186
一.流 流,这里是对数据交换的形象称法。进程是运行在内存中的,在运行的过程中避免不了会与外界进行数据交互。比如将数据从硬盘、控制台、管道甚至是套接字(具体点应该是我们电脑上的网卡)读到我们进程锁所占据的地址空间中。这个数据交换的过程,我们称之为流。在流上的操作就所谓的I/O操作了。 二.装饰者模式 ...
分类:
编程语言 时间:
2016-04-12 00:09:18
阅读次数:
153