2016年9月14日

Template - Strategy

摘要: 模板模式是一种基于继承的松耦合模式,其设计思路为,abstract类提供一组接口但不实现,不同concrete类继承同一接口并完成不同功能。如下图所示: 模板模式实现较为简单,TemplateMethod方法为暴露给用户的接口,其内部调用Primitive等方法。定义Primitive为纯虚函数,在 阅读全文

posted @ 2016-09-14 14:18 炽离 阅读(195) 评论(0) 推荐(0) 编辑

state

摘要: state模式出发点在于类似于if else和switch case这样的分支语句,当分支语句条件数目比较庞大时,看懂或者维护这样的代码很困难。例如,山东项目需求的数据对比功能,简单深度5的三叉树结构,用if语句去实现,就要用的近150行代码(起初是用逻辑表达式将每个节点的前置条件算出,这样减少了i 阅读全文

posted @ 2016-09-14 14:16 炽离 阅读(194) 评论(0) 推荐(0) 编辑

虚析构和虚表

摘要: 首先给出调用方式 Base* b = new child; child* c = new child; 第一种情况:基类和子类的析构函数都不是虚函数。 此种情况下,基类和子类各自调用自己的析构函数。如果直接delete b,则会导致内存空间泄露。(第一句里面,先是new了一个child,child的 阅读全文

posted @ 2016-09-14 14:13 炽离 阅读(262) 评论(0) 推荐(0) 编辑

Factory and AbstractFactory ——抽象与具体的分离

摘要: Factory and AbstractFactory——抽象与具体的分离 面向对象标准关注于抽取一系列事物的共同行为,组建一个基类。行为再划分成两类: 1:现在及以后不太可能会变化的行为。 2:以后可扩展的行为。 Factory and AbstractFactory——抽象与具体的分离 面向对象 阅读全文

posted @ 2016-09-14 14:12 炽离 阅读(192) 评论(0) 推荐(0) 编辑

Singleton ——运行时全局唯一对象

摘要: Singleton 运行时全局唯一对象 Singleton模式只解决一个问题,如何做到运行时创建一个全局唯一的对象? 1:隐藏类的实例化操作,即将构造函数声明为private或protected。任何显示实例化Singleton对象的操作都将被避免。 2:类内用static声明对象,将此对象放在静态 阅读全文

posted @ 2016-09-14 14:11 炽离 阅读(277) 评论(0) 推荐(0) 编辑

Facade ——为子系统的一组接口提供一致界面

摘要: Façade模式提供了子系统一组接口的一致封装特性,如下图所示: 如图所示,OperationWrapper的实现依赖SubSystem1,2等的Operation操作。但用户调用OperationWrapper并不关心子系统的Operation操作如何实现,只要这些操作能返回正确结果即可。可见,F 阅读全文

posted @ 2016-09-14 14:09 炽离 阅读(374) 评论(0) 推荐(0) 编辑

导航