软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
一个OO设计的命运

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

    以下是我在用面向对象的方法进行软件设计时的一点感想和心得,写的有些随意,其中包含的观点或许有失偏颇,欢迎大家多提意见。


    在采用面向对象(OO)的思想进行软件设计时,一个良好的设计往往源自于最初的一些简单动机:将对象的某些东西隐藏起来不被外界看到,将几个对象有效的隔离开使其耦合度降低,限定某个对象的职责让它做它该做的事情,……。她们存在于设计者的潜意识中,并发挥着作用。


    而当你尝试将这些良好愿望贯彻到自己的设计中,直至最终的代码时,往往会遇到这样那样的困难。这使你不得不调整自己的初衷,或坚持,或部分改变,或彻底更换思路。这一过程常常是反复迭代的。找到问题的解决办法时,或许你会为自己的绝妙想法激动不已,而在修改了设计之后,当新的问题又出现的时候,你又不得不重新陷入痛苦的沉思之中。在这段被折磨的时间里,欢乐与痛苦并存,可能OO设计的乐趣也就在于此吧。最终,当你的设计被明确的固定下来并如实的被代码所体现的时候,这将会是一件令人兴奋的事情。


    但事情可能还没有结束,随着产品的更新,用户需求的改变,你的设计在一次次的经受着严峻的考验。也许每次,你都将会对你的设计做出修正,以适应这些变化。但也正是这种修正的积累,在一点点腐蚀着你那最初自以为完美无缺的设计。这有点象饱受海浪拍打的岩石。遗憾的是,当你开始意识到这一点的时候,可能为时已晚。来自客户的压力,使你在每次修改设计的时候,都略显仓促和草率。这使你原先的那个杰作变得千疮百孔,你突然发觉,现在最新的设计较之原先的那个,已经偏离得很远了。早先的那些美好初衷,那些简单动机,在你最新的设计里,其体现已经不是那么清晰了。现在你也许已经顾不上什么优美的思路,简单的解法了,你能做的是尽力去补漏。这是一个恶性的循环,其痛苦的程度是逐渐递增的,直到最后,你精疲力尽地从那个圈里脱离出来。而你的设计大概只有两个结果:要么被你无情的抛弃,因为它已经没有继续修改的价值了;要么继续苟延残喘,并且把维护它的任务转交给别人。


    这就是一个OO设计的命运。




相关文章

相关软件