处理应用协议 用户界面 处理连接 应用逻辑 处理包 访问操作访问数网络通信 系统 据库 传输和接收 应用程序的典型层次 通信系统中的简化层次 安交通大学刘海岩
西安交通大学 刘海岩 6 用户界面 应用逻辑 访问操作 系统 访问数 据库 网络通信 应用程序的典型层次 处理应用协议 处理连接 处理包 传输和接收 通信系统中的简化层次
层向外界提供服务的过程和方法通常称为应用编程 接口( Application Programming Interface,APD)。API的 规格说明必须描述高层用来访问服务的协议,还要描述 每个服务的语义和副作用。层内聚的优点如下 替换高层模块对低层模块没有影响 可以用等价的层替换低层,但必须复制该层所有的 API,这样高层才不受影响 其他有关传统方法中的功能内聚、通信内聚、顺序 内聚、时间内聚等概念及提高内聚的原则在OO设计中 仍然适用 安交通大学刘海岩
西安交通大学 刘海岩 7 层向外界提供服务的过程和方法通常称为应用编程 接口(Application Programming Interface, API)。API的 规格说明必须描述高层用来访问服务的协议,还要描述 每个服务的语义和副作用。层内聚的优点如下: • 替换高层模块对低层模块没有影响。 • 可以用等价的层替换低层,但必须复制该层所有的 API,这样高层才不受影响。 其他有关传统方法中的功能内聚、通信内聚、顺序 内聚、时间内聚等概念及提高内聚的原则在OO设计中 仍然适用
5)弱耦合 OO设计中,耦合主要指不同对象(包括类、包) 之间相互关联的程度,如果一个对象过多地依赖于其 它对象来完成自己的工作,不仅使系统的可理解性下 降,还会增加测试、修改的难度,同时降低了类的可 复用性和可移植性。但对象不可能完全孤立,当两个 对象必须相互联系时,只通过类的公共接口实现耦合, 不应该依赖于类的具体实现细节 设计时尽量减少对象之间发送的消息数( Meyer建 议的少接口),减少消息中的参数个数(小接口) 对象之间以明显和直接的方式通信,减少通信的复杂 程度(显式的接口)。传统方法中有关降低耦合的原 则在OO方法中仍然适用 安交通大学刘海岩
西安交通大学 刘海岩 8 (5)弱耦合 OO设计中,耦合主要指不同对象(包括类、包) 之间相互关联的程度,如果一个对象过多地依赖于其 它对象来完成自己的工作,不仅使系统的可理解性下 降,还会增加测试、修改的难度,同时降低了类的可 复用性和可移植性。但对象不可能完全孤立,当两个 对象必须相互联系时,只通过类的公共接口实现耦合, 不应该依赖于类的具体实现细节。 设计时尽量减少对象之间发送的消息数(Meyer建 议的少接口),减少消息中的参数个数(小接口), 对象之间以明显和直接的方式通信,减少通信的复杂 程度(显式的接口)。传统方法中有关降低耦合的原 则在OO方法中仍然适用
(6)可复用 为了提高工作效率、减少错误、降低成本,就要充分考 虑软件的复用性。复用有两个方面的含义:一是尽量使用已 有的类,包括开发环境提供的类库和已有的相似类。二是创 建新类时考虑将来的可复用性 类有三种复用方式 实例复用 由于类的封装特性,使用者不需要了解内部的实现细节 就可用适当的构造函数创建需要的实例,然后向所创建的实 例发送适当的消息,启动相应的服务,完成需要的任务 设计一个可复用性好的类是一件很困难的事情,因为, 类提供的服务太多,会增加接口的复杂度,降低类的可理解 性;提供的服务太少,则可能会降低复用性。在设计时,需 要根据具体的应用环境和以往的经验来综合考虑,设计出合 适的类构件 安交通大学刘海岩
西安交通大学 刘海岩 9 (6)可复用 为了提高工作效率、减少错误、降低成本,就要充分考 虑软件的复用性。复用有两个方面的含义:一是尽量使用已 有的类,包括开发环境提供的类库和已有的相似类。二是创 建新类时考虑将来的可复用性。 类有三种复用方式: • 实例复用 由于类的封装特性,使用者不需要了解内部的实现细节 就可用适当的构造函数创建需要的实例,然后向所创建的实 例发送适当的消息,启动相应的服务,完成需要的任务。 设计一个可复用性好的类是一件很困难的事情,因为, 类提供的服务太多,会增加接口的复杂度,降低类的可理解 性;提供的服务太少,则可能会降低复用性。在设计时,需 要根据具体的应用环境和以往的经验来综合考虑,设计出合 适的类构件
继承复用 当已有的类构件不能通过实例复用满足要求时,可以 通过继承复用对已有的类构件进行修改,使它满足要求 在设计时,关键是要设计一个合理的、具有一定深度的 类构件的继承层次结构。每个子类在继承父类的属性和 服务的基础上,加入少量的新属性和新服务,这样做的 好处是父子类的耦合度比较适当,接口简单,易于理解 多态复用 多态是一种特性,这种特性使得一个属性或变量在不 同的时期可以表示不同的对象。利用多态性可以使对象 的对外接口更加一般化,系统运行时,根据接收消息的 对象类型,由多态机制启动正确的方法,响应一个一般 化的消息。 安交通大学刘海岩
西安交通大学 刘海岩 10 • 继承复用 当已有的类构件不能通过实例复用满足要求时,可以 通过继承复用对已有的类构件进行修改,使它满足要求。 在设计时,关键是要设计一个合理的、具有一定深度的 类构件的继承层次结构。每个子类在继承父类的属性和 服务的基础上,加入少量的新属性和新服务,这样做的 好处是父子类的耦合度比较适当,接口简单,易于理解。 • 多态复用 多态是一种特性,这种特性使得一个属性或变量在不 同的时期可以表示不同的对象。利用多态性可以使对象 的对外接口更加一般化,系统运行时,根据接收消息的 对象类型,由多态机制启动正确的方法,响应一个一般 化的消息