首先要说的是我对面向对象的理解,以及设计类的依据: http://www.cnblogs.com/xinchrome/p/4904931.html
理解了这篇文章,也就理解了现在要说的。
在面向对象编程的设计阶段,我们可以把设计出类作为一个目标,但是如果我们对进程执行什么样的过程没有清晰的掌握,那么也就无法确定进程需要用到哪些代码!就不可能谈如果对这些代码进行分类,直接画出准确的类图是困难的。数据库和类如何设计关键还是取决于进程的需求,没有通用的法则。我们采用不同设计方式的原因往往也是因为系统实际流程的需求不同。
所以还是应该先把进程的执行流程搞清楚,再来考虑数据库和类。不要急于画出“静态”的类图,先通过用例分析,大致了解系统中的每个进程需要执行一些什么样的代码(更具体的说就是,搞清楚进程需要调用goto语句跳转到哪些代码上去执行,当然,很多高级语言禁止程序员显式地使用goto关键字,而只能采用其他等价的方式,不过我们可以借助goto这个关键字来方便理解),再来思考这些代码如何进行分类,并形成模块。一个模块可以是子系统,包,类,函数等等,模块中的代码可以被不同的进程所执行,同一个进程也可以跳转到不同的模块执行代码。用术语来说,叫“用例分析”,这过程是迭代的。