面向对象讲义参考

上传人:汽*** 文档编号:487236026 上传时间:2023-11-11 格式:DOCX 页数:14 大小:123.45KB
返回 下载 相关 举报
面向对象讲义参考_第1页
第1页 / 共14页
面向对象讲义参考_第2页
第2页 / 共14页
面向对象讲义参考_第3页
第3页 / 共14页
面向对象讲义参考_第4页
第4页 / 共14页
面向对象讲义参考_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《面向对象讲义参考》由会员分享,可在线阅读,更多相关《面向对象讲义参考(14页珍藏版)》请在金锄头文库上搜索。

1、面向对象开发培训参考讲义一.软件架构的组织原则: 软件本质:我们的世界是模糊的、连续的、不精确的,但软件是精确的、离散的、形式 化的,这就注定软件不能完全描述现实世界。所以我们要知道描述那些部分, 忽略那些部分,这就是软件的本质问题。VRAPS 模型(构想,节奏,预见,协作,简化) 构架:为我们提供了整个系统的清晰的视角,对控制系统的开发是必要的。软件系统是一个单一的实体,但从不同视觉展示系统有助于更好的理解设计, 这些视角被解释为系统的模型视图,视图合在一起构成了构架架构描述:用况模型视图,分析模型视图,设计模型视图实施模型视图实现模型视图测试模型视图对描述构架不起作用,他只是用来验证构架基

2、线 二.面向对象分析设计开发面向对象的分析是按照概念(对象)对软件问题进行分解,而不是像结构化分析哪样是按 照功能对软件问题进行分解的。系统分析:理解并详细说明信息系统应该做什么的过程 识别出问题域中不同概念并用概念模型将其存档 系统设计:详细说明信息系统的许多特性在物理上是怎样实施的过程。面向对象的目标是开发能够反映现实世界某个特定片段的软件(或模型). 对象:a 定义为某一事物,即是可以看到、摸到或感觉到的一种实体。b. 在计算机面向对象技术中,对象是系统的基本成分,是具有特殊属性(数据)和 行为方式(方法)的实体.它应有唯一的名称,有表示对象行为的一组公共与私有操 作。= (ID,DS,

3、MS,MI)ID:标识或对象名DS:对象的数据结构MS:操作集MI:对外接口 类:一个类描述了属于该类型的所有对象的性质,包括外部特征和内部实现。共享相似特性和行为的对象的集合。 对象是某个类的一个元素。= (ID,INH,DD,OI,ITF)ID:标识或类名INH:类继承性描述DD:数据结构描述OI:操作集合描述ITF:对外接口类的属性: 抽象:过滤掉对象的一部分特性和操作直到只剩下你所需的操作和属性, 继承:对象继承了所属类的属性和操作,类同样也可以继承其他类的属性和操作。如何发现类之间的继承关系? 在初始模型中,在类列表中找出两个或多个具有相同属性和操作的类,其 中一个类有可能就是其它类

4、的父类,或者可为这些类新建一个父类。子类型有额外的重要的属性, 子类型有额外的重要的关联 子类型以不同于父类型或其它子类型的重要方式被操作,操纵,反应或处理 子类型描述的事物与超类型或其它子类型的行为方式不同 多态:不同的类中可以有相同名称的操作且这个操作在每个类中都能以各自不同的 方式执行,因此必须清楚这些同名操作之间的重要区别。 封装:当一个对象执行自己的操作时,它对外界隐藏操作的细节,持久化框架:是一种可重用的,且通常可被扩展的类的集合,他可向持久化对 象提供服务。如:存储数据时将对象转换成记录,在取回数据时需将记 录转换成对象。消息传递:对象通过相互之间的消息传递协同工作关联:a 在物

5、理上或逻辑上是 b 的一部分a 物理上或逻辑上依赖于 ba 被记录在 b 中管理原则: 1需要知道型关联:需要将概念之间的关系信息记忆一段时间的关联 2概念比关联重要3太多关联使概念模型混乱 4避免关联之间的信息冗余以及减少派生关联 聚集 接口:是描述类的部分行为的一组操作,他也是一个类提供给另一个类的一组操作获取需求的基本原则:1. 深入浅出2. 以流程为主线 获取需求的重点:1. 平均频度: 业务发生的频繁程度(即单位时间内发生的次数) 频度越高,数据量就越大,对响应时间、易操作性等要求越高,在数据存 储需充分考虑2. 高峰期的频度: 只有掌握此数据,在后面系统测试时,需要模拟高峰期的业务

6、频度3. 看单据: 有那些数据,每页数据精度,计算生成方法,取值范围限定单击内容是进行数据结构设计的最基本依据 取值范围与计算方法是数据完整性检测的依据4. 生成单据或报表的时间(手工): 花费时间多,处理方法复杂的地方通常是最关键的地方,也是用户验收关 心的地方,通常也是用户没有足够人力与时间处理才想到用计算机的地方5. 单据或报表的来源: 单据联数,每联用途,送交单位,送交时间6. 有那些特殊情况,在某个作业环节出错时通过何种途径弥补: 分析员可采用穷举的方法,假定每一个环节都出现失误,逐环节询问用户 的处理方法,防止遗漏7. 将来有何变化获得类的过程: 让分析员使用客户所采用的术语和用户

7、交流,可促使客户说出问题的细节。a. 在谈话过程中应不时停下来作总结,测试一下你对问题的理解,熟悉和使用领 域术语,并尽量使谈话气氛保持轻松愉快b. 对不熟悉的领域术语,务必让对方解释清除。不必担心对方觉得你无知,谈话 的目的是获得知识,学习领域术语。c. 需经常从前面的回答中辨别新问题,集中注意力听对方对每个问题的解答,业 务逻辑通常包含在对方对问题的解答中d. 遇到业务逻辑时要作记录,还要整理和维护好这些记录以后可能用到e. 若觉得业务过程某些部分过于复杂,应当暂时将其搁置,日后单独讨论。每个 业务过程复杂度不宜过高,以容易绘制成模型图为宜。绘制出模型图的清晰性 要比模型的复杂性更重要。f

8、. 征求被访者对活动图的反馈意见,根据对方意见修改活动图 分析类的基本构造型:1. 边界类: 用于建立系统与其参与者(用户和外部系统)之间交互的模型,:通常把用 户界面或通信接口变化隔离在一个或多个边界类中2. 实体类: 用于长效且持久的信息建模,实体类主要对诸如个体、实际对象或实际事 物的某些现象或概念信息及相关行为建模。3. 控制类: 代表协调、排序、事务处理以及对其它对象的控制,经常用于封装与某个 集体用况有关的控制,也可用于表示复杂的派生和演算识别概念策略:a. 使用概念目录列表找出概念:物理的或实在的对象 规格说明,设计或事物的描述 地点,事务,人的角色,组织,事件,规则,策略,手册

9、,书籍b. 根据名词性短语找出概念:弱点在于自然语言的不准确性,如:班组,工区概念、属性区分: 若概念在现实世界不仅仅是一些简单的数字或文字,那么最好将其作概念处理, 而不是作为属性处理.类潜在的两组属性:1. 传统的将之视为关系表中属性的属性:如:姓名,编号2. 是客户全视之为类属性的属性:如:线杆的瓷瓶 一个类可以有多个与之关联的属性,具有大量数据的类是不良的设计,比较好的 设计是类具有50 或更少的属性识别职责:4. 知道型职责:知道自己私有的封装的数据,知道自己相关联的对象信息,知 道自己派生出来或计算出来的事物5. 做型职责:自己完成某件任务,发起其它对象执行动作,控制和协调其它 对

10、象内的活动。面向对象设计要点:1. 为实际工作设计2. 理解要实现的东西3. 需求的重要性4. 在现有任务中应用多个模型5. 用例的重要性用力可大可小,但必须是对一个具体的用户目标实现的完整描述6. 文档的重要性7. 证明软件的设计在实践中是可行的8. 应用已知的模式9. 类的内聚性: 一个类应有且仅有一个职责,否则可能由于多个不同原因引起该类发生变 化10. 充分考虑软件的可移植性:当使用os的特性,或利用某db专用语言写了存储过程,应将这些特性的 实现细节封装在一个类中11. 建立对象数据辞典: 便于内部重用和共享,应建立电子化对象数据辞典,以便对象统一归类管 理12. 对接口编程: 是面

11、向对象设计的基本原则之一。对于所有完成相同功能的组件,应抽象 出一个接口,他们都实现该接口。好的接口设计原则:a. 隐藏实现细节b. 只提供必要的功能c. 不要对外部代码施加影响d. 保持接口风格统一e. 在同一层分配和释放资源f. 在较低层检测错误,在较高层处理错误13. 类的最高层是抽象类: 在许多情况下,提供一个抽象类有利于做特性化扩展,抽象类的层次越高, 代码就越有弹性,越容易适应变化.14. 优先使用对象组合,而不是类继承: 有助于保持每个类被封装,并且具有更多的灵活性15. 增加参数的可读性16. 尽量减少对变量的直接访问: 对数据的封装原则应该规范化,不要把一个类的属性暴露给其它

12、类,而是 应通过访问方法去保护他们,这有利于避免波纹效应,若某个属性的名字 改变,只需修改它的访问方法,而不是修改所有相关代码。面向对象的设计原则:a. 单一职责原则: 对于一个类而言,应该仅有一个引起它变化的原因,变化的轴线仅当 变化实际发生时才具有真正的意义,否则应用它是不明智的b. 开发封闭原则: 对于扩展是开放的(我们可以改变模块的功能) 对于更改是封闭的(扩展时,无需改动源码或二进制代码) 一般而言,无论模块多么封闭,都会存在一些无法封闭的变化,没有 对于所有情况都贴切的模型 设计人员必须对于他设计的模块应该对哪些变化封闭作出选择,他们 必须先猜测出最有可能发生的变化种类,然后构造抽

13、象类来隔离那些 变化 对于应用程序中每个部分都进行抽象不是一个好注意,正确的做法 是,开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽 象,拒绝不成熟的抽象和抽象本身一样重要长方形,正方形是非isa的,ood中is a关系是就行为方式而言的c. liskov 替换原则: 子类型必须能够替换掉他们的基类型 在重新声明派生类中的例程时,只能使用相等或者更弱的前置条件来 替换原始的前置条件,只能用相等或者更强的后置条件来替换原始的 后置条件.(例:传入或具体单位值获得单位统计,只传单位)d. 依赖倒置原则: 高层模块不应该依赖于底层模块,二者都应该依赖于抽象 抽象不应该依赖于细节,细节应该依赖

14、于抽象e. 接口隔离原则: 不应该强迫客户依赖于他们不用的方法包的设计原则: 内聚性原则a. 重用发布等价原则 不希望用户发现包中包含的类中,一些是他需要的,另一些他却完全不适b. 共同重用原则:一个包中的所有类应该是共同重用的,如果重用了包中的一个类,那么就 要重用包中的所有类c. 共同封闭原则: 包中的所有类对于同一类性质的变化应该是共同封闭的,一个变化若对一 个包产生影响,则对该包中的所有类产生影响,而对于其它的包不造成任 何影响耦合性原则:a. 无环依赖原则: 若依赖关系图中存在环,就很难确定包创建的顺序 解除环:使用依赖倒置原则创建新包,将两包依赖的类放置其中b. 自顶向下设计c.

15、稳定依赖原则:朝着稳定的方向进行依赖软件分层设计:界面层,业务逻辑层,数据接口层,数据层优点: 良好的透明和封装,高内聚,低耦合,易于扩展,维护和重用,开发人员 易于分工,提高开发效率缺点: 效率降低,开发难度增大面向对象的数据库设计:一般编程设计有两种属性主导型: 从归纳数据库应用的属性出发,在归并属性集合(实体)时,维持属性间的 函数依赖关系实体主导型: 先从寻找对数据库应用有意义的实体出发,然后定义属性来完善实体一般认为现实世界实体数量在属性1/10 以下时,宜使用实体主导型设计方法 面向对象的数据库设计从对象模型出发,属于实体主导型设计 设计步骤:a. 设计应用系统结构b. 选择便于应用程序与 dbms 结合的 dbms 体系结构c. 根据应用程序使用的环境平台,选择适宜的dbms和开发工具d. 设计数据库,编写定义数据库模式的 sql 程序e. 编写用户接口应用程序,录入数据 注:此顺序不是瀑布模型,每一步可以反馈应用对象模型与rdbms模型的映射:a.RDBMS 是以二维表为基本管理单元的,对象模型要由二维表及表间关系 描述,对象模型向数据库概念模型的映射就是向数据库表的变换过程: 一个对象类可以映射一个以上的库表,当类间有一对多的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号