一个OO设计的命运
以下是我在用面向对象的方法进行软件设计时的一点感想和心得,写的有些随意,其中包含的观点或许有失偏颇,欢迎大家多提意见。
在采用面向对象(OO)的思想进行软件设计时,一个良好的设计往往源自于最初的一些简单动机:将对象的某些东西隐藏起来不被外界看到,将几个对象有效的隔离开使其耦合度降低,限定某个对象的职责让它做它该做的事情,……。她们存在于设计者的潜意识中,并发挥着作用。
而当你尝试将这些良好愿望贯彻到自己的设计中,直至最终的代码时,往往会遇到这样那样的困难。这使你不得不调整自己的初衷,或坚持,或部分改变,或彻底更换思路。这一过程常常是反复迭代的。找到问题的解决办法时,或许你会为自己的绝妙想法激动不已,而在修改了设计之后,当新的问题又出现的时候,你又不得不重新陷入痛苦的沉思之中。在这段被折磨的时间里,欢乐与痛苦并存,可能OO设计的乐趣也就在于此吧。最终,当你的设计被明确的固定下来并如实的被代码所体现的时候,这将会是一件令人兴奋的事情。
但事情可能还没有结束,随着产品的更新,用户需求的改变,你的设计在一次次的经受着严峻的考验。也许每次,你都将会对你的设计做出修正,以适应这些变化。但也正是这种修正的积累,在一点点腐蚀着你那最初自以为完美无缺的设计。这有点象饱受海浪拍打的岩石。遗憾的是,当你开始意识到这一点的时候,可能为时已晚。来自客户的压力,使你在每次修改设计的时候,都略显仓促和草率。这使你原先的那个杰作变得千疮百孔,你突然发觉,现在最新的设计较之原先的那个,已经偏离得很远了。早先的那些美好初衷,那些简单动机,在你最新的设计里,其体现已经不是那么清晰了。现在你也许已经顾不上什么优美的思路,简单的解法了,你能做的是尽力去补漏。这是一个恶性的循环,其痛苦的程度是逐渐递增的,直到最后,你精疲力尽地从那个圈里脱离出来。而你的设计大概只有两个结果:要么被你无情的抛弃,因为它已经没有继续修改的价值了;要么继续苟延残喘,并且把维护它的任务转交给别人。
这就是一个OO设计的命运。
- · OO,OO以后,及其极限(5)
- · OO 设计过程:开始设计软件
- · OO 设计过程:验证分析
- · OO 设计过程:应用的用例,第 1 部分
- · OO 设计过程:应用的用例,第 2 部分
- · 编写用例文档-文档中应包括哪些部分,为什么要…
- · 用例建模技巧
- · UML用例建模的慨念和应用
- · UML的现状及未来发展
- · 建模的误区——走出一般性的设计误区,迈向成…
- · UML三大硬伤
- · 极限建模方法
- · 解析UML的动态建模机制(2)
- · 解析UML的动态建模机制(1)
- · UML元元模型与MOF及CDIF的一致
- · 解析UML的静态建模机制(3)
- · 解析UML的静态建模机制(2)
- · 解析UML的静态建模机制(1)
- · 於 UML 循序圖中應用造型和註解
- · Rational Rose和UML可视化建模基础
- · 标准建模语言UML的动态建模机制
- · 第二章 Hello World
- · 第一章 UML模型的基本概念
- · 用Uml画蓝图
- · 用UML画草图
- · UML一统天下 ——统一的不是建模过程而是建模…
- · 统一建模语言UML概述(二)
- · 敏捷开发者发现新西兰人干得更好
- · UML要点与应用
- · 用UML进行W3C XML Schema设计
- · OMG下周表决UML2.0新规范
- · 使用模式集成UML视图
- · 用Uml做为编程语言
- · UML建模工具比较
- · 图论思想与UML应用(下)
- · 建模动力:UML2.0使模型驱动的开发更加容易
- · 使用 UML 为 Web 应用程序构架建模
- · Visio 的数据库建模:第三部分
