如何做到模块、类的划分?

rcaicc 2005-03-06 12:37:44
三个月前经理交代开始开发公司的新版本。虽然大部分都需要翻新,但基本的需求还是可以很方便的得到。我从没有接触过以前的那套软件,而且也没有任何文档。所以对于我来说可以看成接手一个新项目。
需求的确定,我所做的第一步是解决技术上的难点。期间包括试验基本用去了一个月的时间。。
第二步我做的是界面,做出各种情况所需的界面。大概用掉半个月
接下来 我用VISIO学着画了不少“模块”的划分,以及流程图。。。
年后来了这两个星期我在写代码。

自己什么都不懂,只是简单的查些资料去做。几乎完全是凭感觉,感觉需要做什么就去做什么。。而现在发现,技术上的难点我最多也只看到了50%,甚至仅仅的50%我还要考虑到底要不要再继续用下去。界面虽然做出不少,仅仅控件的改变,(从DBGrid 到 StringGrid 再到ListView)就使我反反复复做一些划分的模块抛弃再重新划的工作。以及流程图的放弃、数据库的更改。。。模块、流程图的文档,因为当初很多都没有考虑到,也就是说很多需要的文档中都没有,最终把那些模块划分、流程图扔到一边,依靠脑袋想着去写代码!!还有一个半月就要交差了。最少也要给一个基本能使用的软件。然后再修改、测试。。。不知道我这样的做法、顺序 算不算的上是对程序构架的搭建?如果算是的话我想应该属于:失败中的失败!

再谈模块、类的划分。在半年前我发过一个帖子:《学delphi,学编程,重要的是学编程思想!》(http://community.csdn.net/Expert/topic/3299/3299427.xml?temp=.8234674),虽然我不时的回头看看大家的回复,对我的指点。但始终逃脱不了庸俗的控件操作,低级的过程化设计。我想这半年我最大的提高无非就是能够把代码抽出来,简单的想就是多了一些function,procedure.我这颗猪脑甚至往往写程序的时候会把某一个函数所需要调用的另一个函数放在它附近,简单的想就是滚一下鼠标就可以找到对应的函数!在我脑中面向对象到底在哪里??不敢想象半年前的我站在什么样的角度去看“编程思想”!。

类我试着写了不少。我猜想,之所以目前这样的状况是因为我没有发现它的优势,甚至还感觉到类中的那些函数放到一个单元中更方便!我还常用单元和类进行比较。。。
计划下星期把所抽出来的函数先放到不同的单元,之后再对不同的函数进行划分,把划分好的函数组成类。倒着来不知道能不能有点作用~~~哎,,,。
望各位能够多多指教。。。

--------------------
小人本住在黄河的一边,家中有屋又有田,生活乐无边。自从有了CSDN,它占我
时间夺我钱,逼我卖楼又卖田,流落在街边……各位朋友可怜我,陪我聊聊天!聊聊天!


...全文
382 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunshine1750 2005-03-08
  • 打赏
  • 举报
回复
楼主放宽点心,车到山前必有路

我个人看法是这样的
不管大小项目,不能为了OO而OO,在交货的时候能拿出东西才是关键,
在这个前提下,才能更多的考虑到扩充,可移植性,整体效率..

不同的项目有其特性,这些东西就不能过多的考虑OO了
漂白猪 2005-03-08
  • 打赏
  • 举报
回复
楼主6个月前,写的那个贪吃蛇,我就说没OO思想在里面。
现在还是郁闷了吧- -b

OOP,重要的还是思想,用OO的方法去思考问题,解决问题:)
MartinWang 2005-03-08
  • 打赏
  • 举报
回复
看一看Bold,对你应该有帮助!!:)
laiqinghe 2005-03-08
  • 打赏
  • 举报
回复
不懂 OOP 功能分解--------逐步求精
g961681 2005-03-08
  • 打赏
  • 举报
回复
先收藏,晚上再看!
rcaicc 2005-03-08
  • 打赏
  • 举报
回复
顶一下
caiso 2005-03-07
  • 打赏
  • 举报
回复
顶一下^_^
beyondtkl 2005-03-07
  • 打赏
  • 举报
回复
MK 一下下.



思考 使人進步.

做設計 需要經驗得累積 需要失敗的累積 也需要不斷的反思,

做什麼都一樣了.. 繁體打字比較麻煩
麦子VISA 2005-03-07
  • 打赏
  • 举报
回复
>>我想这半年我最大的提高无非就是能够把代码抽出来,简单的想就是多了一些function,procedure.我这颗猪脑甚至往往写程序的时候会把某一个函数所需要调用的另一个函数放在它附近

好象自己也是这样...OO在我们自己开发的小项目中还是没用过~~可能以后也用不到!
fim 2005-03-07
  • 打赏
  • 举报
回复
http://www.2ccc.com/article.asp?articleid=239
http://www.2ccc.com/article.asp?articleid=841

就是这个了
fim 2005-03-07
  • 打赏
  • 举报
回复
楼主的进步水平确实惊人,偶现在也有同楼主一样的困惑,我觉得还是需要时间,不能急。有句话不是说水到渠成嘛?

其实,个人认为(限于目前水平)win32下的数据库开发,并不是很适合用oo来做,或者说只适合部分采用oo,窗口界面控制和业务逻辑一般都比较复杂,很难做到oo,偶比较笨,一般也就窗体继承而已:-D

web开发比较适合采用oo,因为web界面的控制远比win32平台来得简单,进行类抽象也相对容易。向你推荐java,它是最纯的oop语言,同时它开源,有不少第三方的framework,有不少成熟的第三方应用服务器,这些都是.net所无法比拟的,像你这样的oo狂一定会收获不浅的^_^

另外,我记得2ccc上有一个基于mvc的Delphi源码,楼主有兴趣可以找一下看看。

不成熟的一家之谈,见笑
僵哥 2005-03-06
  • 打赏
  • 举报
回复
类只是一个模板,重在把类似的东西做一个模板里面去,一是方便把类似的东西划分到一块,增强代码的可读性,缺点是修整一个父类,那么就有可能影响到所有子类的变化,所以尽可能把类细划,尽可能不少修改一个拥有多超类的父类的结构,否则就会有意想不到的结果。

模块重在代码重用,但是基本属于定性的实现代码,同时模块讲究的标准性的接口,与内部代码无关,方便对劣质代码的修改,而不影响其它使用该接口的外部作业系统,还可以封装起,不暴露予外人。所以企业代码里面,这一级别上体现得更为广范。

企业代码当中更多的定性代码,而相对来说,扩展型代码使用得比较,即使是二次开发支持包,也同样是使用企业代码的接口,而并非直接使用企业代码来进行扩展。
wy_delphi 2005-03-06
  • 打赏
  • 举报
回复
不懂我也支持。小弟诚心求学,哪位师傅带带我这无知的徒弟?小徒学的狂快。小弟oicq:910660
wy_delphi 2005-03-06
  • 打赏
  • 举报
回复
你好,小弟喜欢学习,能指教一二吗?谢谢您。910660是小弟的oicq.还望不弃,
cdsgajxlp 2005-03-06
  • 打赏
  • 举报
回复
学习ING
aiirii 2005-03-06
  • 打赏
  • 举报
回复
>>我想这半年我最大的提高无非就是能够把代码抽出来,简单的想就是多了一些function,procedure.我这颗猪脑甚至往往写程序的时候会把某一个函数所需要调用的另一个函数放在它附近,

其實這樣已經有進步了!
應該沒有放之任何系統都完美的設計, 要看系統的規模, 變化範圍, 以及使用範圍, 簡單的, 其實也不用過多的設計!

至于面向對象的設計, 我覺得還是要先看看書, 再聯系實際項目思考
kuki84 2005-03-06
  • 打赏
  • 举报
回复
bang ding
大熊猫侯佩 2005-03-06
  • 打赏
  • 举报
回复
帮顶~~~~~~
yuexialinfeng 2005-03-06
  • 打赏
  • 举报
回复
我是从vc转delphi的,学delphi才两个星期,楼主的水平肯定比我好很多很多.
我想表达下这半个月来的体会,我之所以转delphi,主要是因为这学期要做软件工程,要上组件编程(com编程),AI,Computer network....还有很多很多课,几乎都要做或大或小的项目,再加上要考研,眼下时间很紧,而我知道,delphi在做工程或者开发组件上远比vc快捷.而且网上有大量第三方组件,否则我决不会移情别恋.
刚开始我和大家都一样看书,看vcl架构,因为我知道想成为delphi高手必须熟悉windows编程和vcl(不过现在估计还要熟悉.net),不过很多看不懂,毕竟涉及到太多的设计模式,然后看例子直接写了,没有看语法,毕竟以前用pascal写过算法.写小程序时,根本体会不到什么oo,不过这也很自然,oo的出现不是凭空出现的,主要在复杂的大软件上用到,还有就是抽象出模块的相同点的时候用道,目的也是重用,易扩展,易改写,易维护.
我体会最深的就是开发组件的时候,真正需要oo思想,当然没有结合具体问题的组件开发没有多大意义.
用mfc,stl的时候,我可能会想该不该扩展该类,但用delphi的时候,就会想该不该改写或者扩展某个组件.
楼上的一星说的:
"企业代码当中更多的定性代码,而相对来说,扩展型代码使用得比较,即使是二次开发支持包,也同样是使用企业代码的接口,而并非直接使用企业代码来进行扩展。"
我还是学生企业的事情我不知道,但这思想其实就是com的思想..

todouwang 2005-03-06
  • 打赏
  • 举报
回复
在应用程序的设计中,专门加个模块放入类的定义,以及一些记录类型,感觉很必要,重要便宜成功,用ctrl+ 效果跟delphi里面的一样,可以定位到它定义的地方,这样比较方便
模块的划分,自己脑子里没什么概念,前段时间搞个系统,我划分模块就是按照菜单划分的

5,938

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧