- 博客(9)
- 资源 (8)
- 收藏
- 关注
转载 内存泄露的检测工具——Valgrind
1.1 下载安装 Valgrind是在linux系统下开发应用程序时用于调试内存问题的工具。它尤其擅长发现内存管理的问题,它可以检查程序运行时的内存泄漏问题。 它的官方网址是 http://www.valgrind.org/,下载最新版本的Valgrind,目前是3.11.0。 Linux下下载:wget http://www.valg
2015-12-19 09:13:53 1385
原创 桥接(Bridge)模式
意图 将抽象部分与它的实现部分相分离,使它们能独立地变化。 例子 不同平台上操作对象的代码不一样,如Window系统和OS 系统的界面展示实现;又如游戏机和游戏卡的关系,不同的游戏卡可以播放不同的游戏,但一台游戏机只要有一张卡就行。 适用性 你不希望在抽象和它的实现部分之间有一个固定的绑定关系,如在程序运行时刻实现部分应可以被选择或者切换。 类的抽象以及
2015-12-12 16:00:07 631
原创 访问者(visitor)模式
意图: 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 Gof给出的例子如下: 考虑编译器的语法分析树,其需要在抽象语法树上实施某些操作以进行“静态语义”分析,例如检查所有变量已经被定义了。同时,它也需要生成代码,因此要定义一些类型检查、代码优化、流程分析等工作。 然而这些操作
2015-12-12 11:46:59 480
原创 建造者(Builder)模式
意图: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程能够创建不同的表示。也可以通过改变产品的构建过程,从而生成不同的产品。 例子: 如KFC中的套餐可分为成人套餐和儿童套餐,成人套餐产品包括:大可,大汉堡,大份薯条等,儿童套餐则包括小可、mini汉堡、小份薯条等。套餐的构建过程一致,但产品不一致。 适用性: 1) 当创建复杂对象的算
2015-12-12 11:45:09 387
原创 抽象工厂(Abstact factory)模式
意图: 提供一个创建一系列相关或相互依赖对象(属于同一个产品族,如不同风格的一组控件)的接口。AbstractFactory模式将产品对象的创建延迟到它的ConcreteFactory子类。 本质: 产品有多种风格,但其生产过程相似,通过继承和多态机制可以实现不同风格产品的创建,只需变更相应的抽象工厂即可。 缺点: AbstractF
2015-12-12 11:37:29 441
原创 工厂方法(Factory Method)模式
意图: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。这样,核心工厂类不再负责产品的创建,仅负责为具体工厂类提供必须实现的接口,这样的好处是可以使系统在不修改工厂角色情况下引入新的产品(新增一个具体工厂类即可) 解决的问题: 应用类不能预测那个实例子类被实例化,仅知道一个新的对象何时应被创建
2015-12-12 11:36:41 447
原创 程序设计的几个基本原则
1) 开闭原则:对扩展开放,对修改关闭;也就是用抽象构建框架,用实现扩展细节 2) 单一职责:一个类实现的功能要尽可能单一,避免像一个函数实现两个功能这样的设计(这时最后重构成两个函数) 3) 里氏替换原则:不要破坏继承体系,如正方形和长方形类,如果把正方形当做长方形的子类(正方形只需定义一个边长),就不符合里氏替换原则 4) 依赖倒置
2015-12-12 11:29:26 840
转载 查找内存泄露的工具 (转)
Windows/Linux下C/C++内存泄露检测工具 文章出处:http://blog.163.com/cp7618@yeah/blog/static/702347772012728105356157/ 转的人多了,原创不知道在哪了 一 Window下的内存泄露检测(以VC++环境为例) 灵活自由是C语言的一大特色,但这个特色也难以避免的带来一些副作用,比如内存泄露。众
2015-12-06 19:52:52 705
原创 状态(state)模式
意图: 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 适用情形: 1) 一个对象的行为取决于它的状态,并且它必须在运行时刻改变它的状态。 2) 一个操作中含有庞大的多分支条件语句,且这些分支依赖于对象的状态。这个状态通常用一个或多个枚举常量表示。State模式将每一个条件分支放入一个独立的类中,这使得你可以根据对象自身的情况将对象的状态作为一
2015-12-04 20:13:14 441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人