上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 74 下一页
  2013年8月7日
摘要: 项目经过长期多人的维护,所谓人多手杂,出现不少过多过长的switch-case分支,或者多重switch-case嵌套。每每添加功能,我都会紧皱眉头,然后带着罪恶感向已经成百上千行的函数里再添上一个case分支,然后纠结地收工了事。于是乎,在我的内心深处,switch-case俨然成了代码坏味道的代... 阅读全文
posted @ 2013-08-07 13:15 莫水千流 阅读(2509) 评论(0) 推荐(0) 编辑
  2013年7月7日
摘要: 说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。这里用一个简单的例子来说明这三种情况://generalversiontemplateclassCompare{public:staticboolIsEqual(constT&lh,constT&rh){returnlh==rh;}};这是一个用于比较的类模板,里面可以有多种用于比较的函数, 以IsEqual为例。一、特化为绝对类型也就是说直接为某个 阅读全文
posted @ 2013-07-07 21:14 莫水千流 阅读(2831) 评论(0) 推荐(0) 编辑
  2013年7月2日
摘要: 在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:version 1boolExecute(){//分配资源int*p=newint;boolbOk(t 阅读全文
posted @ 2013-07-02 10:22 莫水千流 阅读(304) 评论(0) 推荐(0) 编辑
  2013年6月29日
摘要: 了2007年的目标,列了下面待读或重读的书单。 "其实中国程序员,现在最需要的是一张安静的书桌。",的确,中国架构师大多缺乏系统的基础知识,与其自欺欺人的宣扬"读书无用,重在实践变通,修身立命哲学书更重要",把大好时间用来追逐互联网上的片言只语,不如直面缺陷,系统的学习一次。 书单越读越薄,好书真的不多哇。 一、Software Architecture篇 这个领域没有什么"畅销书",可能读者中本来就是开发设计人员与项目经理占了多数,真正定位为架构师而且做的也是架构师工作的不多吧,你懂的尽是偏僻的人生。《Software Archit 阅读全文
posted @ 2013-06-29 10:38 莫水千流 阅读(354) 评论(0) 推荐(0) 编辑
  2013年6月27日
摘要: 模块独立程度的度量标准(1)耦合 不同模块之间的互联程度的度量 2)内聚 模块内部彼此结合的紧密程度的度量 耦合的强弱取决于什么? ► 模块之间接口的复杂程度 ► 调用模块的方式 ► 通过接口的数据怎样具体区分模块间耦合程度的强弱呢?① 非直接耦合(Nondirect Coupling)► 两个模块没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的► 非直接耦合的模块独立性最强。② 数据耦合(Data Coupling)► 两个模块彼此间通过参数来交换信息,而且交换的信息仅仅是数据。► 数据耦合属于松散耦合。③ 特征耦合(Stamp Coupling)► 当把整个数据结构作... 阅读全文
posted @ 2013-06-27 16:03 莫水千流 阅读(2416) 评论(0) 推荐(0) 编辑
  2013年6月21日
摘要: UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此 阅读全文
posted @ 2013-06-21 12:57 莫水千流 阅读(410) 评论(1) 推荐(0) 编辑
  2013年6月20日
摘要: 2.链式存储结构 阅读全文
posted @ 2013-06-20 21:29 莫水千流 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 二叉树性质、 阅读全文
posted @ 2013-06-20 21:21 莫水千流 阅读(199) 评论(0) 推荐(0) 编辑
  2013年6月11日
摘要: 和栈相反,队列是一种先进先出(first in first out 缩写为FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。双端队列:限定插入和删除操作在表的两端进行的线性表-----单链队列 队列的链式存储表示------和线性表类似,队列也可以有两种存储表示。用链表表示的队列简称链队列。typedef struct QNode {QElemType data;struct QNode * next;}QNode ,QueuePtr;typedef struct {Queueptr front; //队头指针Queueptr rear; //队尾指针}LinkQueue;s 阅读全文
posted @ 2013-06-11 10:22 莫水千流 阅读(993) 评论(0) 推荐(0) 编辑
摘要: 栈是限定仅在表尾进行插入和删除操作的线性表。因为对栈来说,表位端有其特殊含义,称为栈顶(top),相应的标头称为栈底(bottom),不含元素的空表称为空栈。和线性表类似,栈也有两种存储表示方法。顺序栈,即栈的顺序顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的元素。同时附设指针top指示栈顶元素在顺序栈中的位置。 通常 top = 0 表示空栈。-----栈的顺序存储表示------#define STACK_INIT_SIZE 100;#define STACK_INCREMENT 10;typedef struct {SElemType *base;SElemType* t 阅读全文
posted @ 2013-06-11 10:08 莫水千流 阅读(497) 评论(0) 推荐(0) 编辑
上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 74 下一页