软件分析与设计
dylgsy
一雨田
展开
-
实现自己的“命令映射表”(上)
问题是这样的,在自己的一个程序里,需要根据接收到的命令(此命令是一个字串)来执行相应的函数。类似的情况可能有:1、SOCKET 程序:程序可能要根据对方传来的命令来执行相应的函数。2、脚本解析程序:在一个程序中根据读入的命令串来执行相应的函数。3、类似WINDOWS的消息系统,一条消息对应一个函数。反正这种的应用很多,学会这种设计手法是非常有帮助的,因为它可以帮我们轻松的添加新的命令。这种原创 2006-09-20 17:52:00 · 5986 阅读 · 14 评论 -
实现自己的“命令映射表”(下)
在上一篇中,我们讨论了如何设计一个“命令映射表”,但是上篇对应于表中“命令”的所有函数都是同一类型的,均为返回值为 void,参数为 void 的函数。如果我们要根据不同的“命令”来执行不同类型的函数要怎么办呢? (这里的不同指的是执行函数的返回值可能不同,参数列表可能不同。)。好,我们下面就开始讨论这个问题。可能这篇比上篇会难一点,拿出你程序员的毅力来。想想搞定了以后,我们就可以在程序中原创 2006-09-21 12:08:00 · 3364 阅读 · 7 评论 -
代替 if-else,switch-case 的几种方法
if-else,switch-case 是判断逻辑的语句,只要我们需要分支,就可能要用到这种语句,在 C 的编程风格中,更是动则需要这种判断语句,问题是这种判断语句如果多了,就会毁坏代码的可读性和维护性,增加了代码的“臭味”。那现在的面向对象编程时代,我们是否有些方法来代替呢?嗯,是有的,C++语言提供的多态、模版等特性就非常适合于编写代替 if-else、switch-case 的代码。我们原创 2006-10-18 15:39:00 · 18198 阅读 · 43 评论 -
三种错误处理的方法——从返回值到异常处理
作者:一雨田(http://blog.csdn.net/dylgsy/)。本文可随便转贴,但请保留此信息 1、返回值判断这个错误处理的方法是最普遍的,也是在过程化程序设计中的经典的错误处理方法。至今也是最多人使用的方法。代码的编写是这样的:int nRet = DoThing1();if(nRet != SUCCESS){ cout if((nRet == -1)原创 2006-07-20 10:30:00 · 12894 阅读 · 3 评论 -
UML类图关系全面剖析
本文随便转载,请保留出处:http://blog.csdn.net/dylgsy/UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关原创 2006-08-16 18:50:00 · 63292 阅读 · 88 评论