第11章 面向对象设计演示课件.ppt

2. 设计相应的服务 如果某个类的对象需要存储起来,则在这个类中增加一个属性和服务,用于完成存储对象自身的工作。应该把为此目的增加的属性和服务作为“隐含”的属性和服务,即无须在面向对象设计模型的属性和服务层中显式地表示它们,仅需在关于类与对象的文档中描述它们。 这样设计之后,对象将知道怎样存储自己。用于“存储自己”的属性和服务,在问题域子系统和数据管理子系统之间构成一座必要的桥梁。利用多重继承机制,可以在某个适当的基类中定义这样的属性和服务,然后,如果某个类的对象需要长期存储,该类就从基类中继承这样的属性和服务。 下面介绍使用不同数据存储管理模式时的设计要点。 (1) 文件系统 被存储的对象需要知道打开哪个(些)文件,怎样把文件定位到正确的记录上,怎样检索出旧值(如果有的话),以及怎样用现有值更新它们。 此外,还应该定义一个ObjectServer(对象服务器)类,并创建它的实例。该类提供下列服务: 通知对象保存自身; 检索已存储的对象(查找,读值,创建并初始化对象),以便把这些对象提供给其他子系统使用。 注意,为提高性能应该批量处理访问文件的要求。 图11.6 把多重继承简化为单一层次的单继承 6. ATM系统实例 图11.7描绘了上章给出的ATM系统的问题域子系统的结构。 由于在面向对象分析过程中已经对ATM系统做了相当仔细的分析,而且假设所使用的实现环境能完全支持面向对象分析模型的实现,因此,在面向对象设计阶段无须对已有的问题域模型作实质性的修改或扩充。 图11.7 ATM系统问题域子系统的结构 在面向对象分析过程中,已经对用户界面需求做了初步分析,在面向对象设计过程中,则应该对系统的人机交互子系统进行详细设计,以确定人机交互的细节,其中包括指定窗口和报表的形式、设计命令层次等项内容。 11.6 设计人机交互子系统 人机交互部分的设计结果,将对用户情绪和工作效率产生重要影响。人机界面设计得好,则会使系统对用户产生吸引力,用户在使用系统的过程中会感到兴奋,能够激发用户的创造力,提高工作效率;相反,人机界面设计得不好,用户在使用过程中就会感到不方便、不习惯,甚至会产生厌烦和恼怒的情绪。 由于对人机界面的评价,在很大程度上由人的主观因素决定,因此,使用由原型支持的系统化的设计策略,是成功地设计人机交互子系统的关键。 本节仅从面向对象设计的角度补充讲述一下设计人机交互子系统的策略。 1. 分类用户 人机交互界面是给用户使用的,显然,为设计好人机交互子系统,设计者应该认真研究使用它的用户。应该深入到用户的工作现场,仔细观察用户是怎样做他们的工作的,这对设计好人机交互界面是非常必要的。 为了更好地了解用户的需要与爱好,以便设计出符合用户需要的界面,设计者首先应该把将来可能与系统交互的用户分类。通常从下列几个不同角度进行分类: 按技能水平分类(新手、初级、中级、高级)。 按职务分类(总经理、经理、职员)。 按所属集团分类(职员、顾客)。 2. 描述用户 应该仔细了解将来使用系统的每类用户的情况,把获得的下列各项信息记录下来: 用户类型。 使用系统欲达到的目的。 特征(年龄、性别、受教育程度、限制因素等)。 关键的成功因素(需求、爱好、习惯等)。 技能水平。 完成本职工作的脚本。 3. 设计命令层次 设计命令层次的工作通常包含以下几项内容。 (1) 研究现有的人机交互含义和准则 现在,Windows已经成了微机上图形用户界面事实上的工业标准。所有Windows应用程序的基本外观及给用户的感受都是相同的。Windows程序通常还遵守广大用户习以为常的许多约定。 设计图形用户界面时,应该保持与普通Windows应用程序界面相一致,并遵守广大用户习惯的约定,这样才会被用户接受和喜爱。 (2) 确定初始的命令层次 所谓命令层次,实质上是用过程抽象机制组织起来的、可供选用的服务的表示形式。设计命令层次时,通常先从对服务的过程抽象着手,然后再进一步修改它们,以适合具体应用环境的需要。 (3) 精化命令层次 为进一步修改完善初始的命令层次,应该考虑下列一些因素: 次序:仔细选择每个服务的名字,并在命令层的每一部分内把服务排好次序。排序时或者把最常用的服务放在最前面,或者按照用户习惯的工作步骤排序。 整体-部分关系:寻找在这些服务中存在的整体-部分模式,这样做有助于在命令层中分组组织服务。 宽度和深度:由于人的短期记忆能力有限,命令层次的宽度和深度都不应该过大。 操作步骤:应该用尽量少的单击、拖动和击键组合来表达命令,而且应该为高级用户提供简捷的操作方法。 4. 设计人机交互类 人机交互类与所使用的操作系统及编程语言密切相关。例如,在Windows环境下运行的Visual C++语言提供了MFC类库,设计人机

文档评论(0)

1亿VIP精品文档

相关文档