面向对象方法学的疑问
基于面向对象思想,在程序设计中要解决的问题是 "我们要为哪些物理对象建模 ",从而用这个问题的解来划分模块(即通用功能子系统).那么在系统设计的概要设计阶段划分的子系统,在详细设计时每个子系统都要设计一个类或一个类层次体系吗?
考虑下面这个客户资源管理系统(一个简单的CRM):
1.需求分析:(略)
2.系统设计:
概要设计:根据需求,可划分为4个模块:身份验证;客户信息管理(包括增加新客户、修改客户信息、删除客户信息);客户类型管理(包括增加新类型、修改新类型、删除新类型);查询管理(按姓名查询、统计信息查询)
详细设计://我在这里设计了一个客户信息类与,我想问一下是否还应该设计一个客户类型类与相关的查询类呢??????
.............
解释一下 "客户类型 ":
客户类型包括:客户所在地,客户职位,客户行业
我是想在填写客户信息时,所在地、职位、行业有下拉框可以选择,另外还可以增加/修改/删除.
另外我的开发环境是vs2005(MFC)+SQL Server 2005.
多谢!!!!!!!
[解决办法]
呵呵 路过 文档写个大概,别人能明白,自己忘了可以查看就可以了吧 :) 写那么细 多数时候估计没人翻看 :) 有些东西设计了是那样好 等作的时候可能就不那么想了......
[解决办法]
详细设计还是逻辑上的设计,你要是连类名都设计出来就太早了,别人写代码可能和你习惯不一样呢
[解决办法]
先是一个大的客户类(父类),它包含他们所共有的,就是你所说的-身份验证类 ;客户信息管理,客户类型管理类,查询管理类)
我觉得面向对象的设计 类与类之间是要有一定的联系的,最好画个图,画出他们之间的实现等等 ,这样一看就觉得明了多了。
[解决办法]
你这里的设计涉及到两个方面,一个是数据库,另外一个是C++的设计
那么我建议设计的时候分为两部分,一部分是数据库表的设计
如果是这样的话,那么客户的信息,客户的类型,分别都要有对应的表,通过某个key来关联.而像所在地,职业如果你觉得必要的话,也可以增加对应的表.这样就可以比较灵活,不至于写死在代码中.
涉及到C++的话,你既然有对象,那么也要有针对对象的操作.将客户的信息,类型分别抽象出来作为类是很对的啊.而且如果他们的操作都一样的话,那么还可以再抽象出来一层.
至于查询类的话,不太清楚是咋回事.
[解决办法]
详细设计的话,你可以设计到类的成员函数一级,不见得要实现出来,但是要有流程图或者伪代码.