Discuz!NT
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
商都网教育宝典宝库

发表新主题 回复该主题
本主题被查看906次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 面向对象分析设计学习与探索(二):好的应用程序设计(Well-designed apps rock)
张小峰
超级版主
UID: 14
来自:
精华: 4
积分: 313
帖子: 285
注册: 2007-8-23 10:27:00
状态: 离线
威望: 8.00
金钱: 75.55 元
只看楼主 2007-08-24 11:49
面向对象分析设计学习与探索(二):好的应用程序设计(Well-designed apps rock)
如何能编写一个好的软件?这个问题我也一直在问我自己,每一次开发新的项目的时候,我都希望或争取这一次比上次做得好,至少我自己这么认为。虽然的确感觉每次都有一些成长,但是总是不能让人觉得满意。造成不满意的原因有很多,大多被我归咎到:时间紧任务重,所以劳动量大,能力有限,还有需求不明和需求不断的变化使我觉得继续做下去很乏味。我相信很多人跟我有同感。我也相信实际上这个问题很难回答,这有一个例子不错,不妨来看看。情景:吉他店的老板决定要用一个查询系统代替原先的纸质纪录,以帮助他的客户更快的查询导向要的吉他。
根据用户所提供的需求,我们建立了两个类型:吉他和仓库。吉他类型中包含了吉他的各个属性;仓库类型中包含了吉他列表以及一些功能方法,如:添加吉他,获得吉他,查询吉他。




    现在就来实现这两个类型:














































































































顾客只需要将其想要吉他的信息输入,系统调用searchGuitar函数就可以查询出相应的吉他列表。下面我们加入测试代码:


































   
[/size][/font]

但是结果往往并不像我们想象得那么顺利。比如说用户在查找时输入如下时查询结果就不尽人意了




第一件事我们需要改变什么?如何写一个好的软件?


首先,好的软件必须满足客户需求。软件必须做客户想让它做的事情。

第二,好的软件是好的设计,好的编码,简单的维护,重用和扩展
换句话说,好的软件需要三步:




          回来再看我的例子,要让刚才的程序变为一个好的软件,第一步是要确定我的软件做客户想让它做的事情。但是现在由于客户输入的信息在大小写上和存储的信息有偏差,造成的结果无法查找出来。不过要注意:在解决问题时不要带入新的问题。现在所要做的是满足客户需求。既然查询的时候因为大小写有偏差,那就把客户的输入信息和要比对的信息都换成小写。修改Inventory类型中的searchGuitar
















                现在这个问题解决了,程序也就基本满足了客户的需要。但是这第一步就结束了吗?现实生活中当客户开始使用编写好的工具的时候,他的想象力的大门也就慢慢打开了。我们能做的只能是尽力去满足他。当然我认为是尽力,而不是必须。因为有结项时间在那,首先要保证的是整体功能。记住,写一个好的软件的第一步是要确定你的软件做的是客户想要做的。
当我们根据客户的新要求编写好软件后,实际上只完成了第一步。但是在做项目期间,常常是完成了这一步就不做了。所以到最后随着新的模块或者功能的增加,项目变得异常混乱。实际上写完代码并实现功能只是第一步,很多公司往往不太重视对于代码的重构,甚至是不希望做代码重构,因为老板眼里,代码重构只会加重成本。不过我觉得重构可以减少今后维护或者是继续开发的风险。现在开始重新审视写好的代码,改进其中不合理的地方,或者说不符合面向对象的地方。
在上面的代码例子中,有没有觉得那个查询方法有些奇怪。实际上我们应该查的是某一类型的吉他,而且不需要填入吉他的编号和价格,或者说searchGuitar方法中应该按照一个吉他的规格去查询。当然,每个吉他也对应的属于某个规格。添加吉他规格类型GuitarSpec,并修改Guitar





























































































































































#1  
发表新主题 回复该主题
本主题被查看906次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-10-11 11:46:39

版权所有 商都网教育宝典
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.128 seconds