欢迎
游客
,
注册
|
登录
|
会员
|
界面
|
简洁版本
|
在线
|
帮助
商都网教育宝典宝库
商都网教育宝典宝库
计算机
软件开发
面向对象分析设计学习与探索(二):好的应用程序设计(Well-designed apps rock)
本主题被查看906次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
上一主题
下一主题
标题: 面向对象分析设计学习与探索(二):好的应用程序设计(Well-designed apps rock)
zxf_1
张小峰
超级版主
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 跳转到第
页
论坛跳转...
胎教早教
准备怀孕
怀孕期
出生与分娩
婴儿期(0-1岁)
幼儿期(1-3岁)
学龄前(3-6岁)
中小学
课件
试题
中招
中招动态
招生快讯
相关政策
考试辅导
语文
数学
英语
物理
化学
生物
政治
历史
地理
家长交流
历年中招资料
满分作文
高考
高考动态
高考状元
历年试题
家长必读
志愿填报
心理减压
复习技巧
考生经验
备考辅导
高考大纲
历年分数线
高考常识
高考指南
语文
数学
外语
物理
化学
生物
历史
地理
政治
文综
理综
高考满分作文
家长
教师
读书
作文
郑州新东中学
学校动态
学生天地
高等教育
移民留学
成人高考
自学考试
考研
论文
外语
雅思
托福
四六级
实用英语
职称外语
公共英语(PETS)
商务英语
英语口语
小语种
英思力美语
在线留言
学校动态
课程
学生作业
英思力相册
学英语资料
计算机
办公应用
软件开发
平面动画设计
IT资格认证
等级考试
网络工程
初学者之路视频教程
计算机基础
Windows
Word2003
Execl2003
Powerpoint
Flash
Deamweaver
Fireworks
黑客基础
北大青鸟
青鸟新闻
开班信息
青鸟师资
在线问答
学员相关
技术文章
职业资格
企业培训师
资料库
历年试题
案例探讨
相关政策
财务会计
公务员考试
营养师
营养动态
职业前景
健康权威
学习指导
营养知识
健康食谱
心理咨询师
心理俱乐部
学习指导
花季少年
爱情婚姻
心理障碍
人在职场
职业前景
经典案例
导游
司法考试
建筑工程资格
外贸资格
医药资格考试
教师资格考试
电子商务师
人力资源师
资料库
历年试题
案例探讨
相关政策
技能培养
汽车驾驶
美容美发
美容
美发
化妆
整体形象设计
相关课程
人才信息
茶艺
调酒
厨师烹饪
手机维修
音乐乐器
舞蹈健身
企业管理
人力资源
市场营销
管理激励
管理书籍
管理视频
信诺专栏
职场招聘
招聘信息
职场沙龙
现在的时间是 2008-10-11 11:46:39
版权所有
商都网教育宝典
Powered by
Discuz!NT
1.0.6666 Copyright © 2001-2008
Comsenz Inc
.
Processed in 0.128 seconds