版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程,第13章 面向对象设计,面向对象设计,面向对象设计(OOD) 在OOA的模型基础上运用面向对象方法,解决与实现有关的问题,产生一个符合具体实现条件的可编码实现的OOD模型,以驱动系统的实现 OOD是以OOA模型为基础,只需做必须的精化和调整,进一步设计某些细节,并增加与实现相关的部分即可 需要做出许多技术决策:简单的问题如选用的编程语言、数据库和人机交互等,,主要的活动有: 划分子系统 设计系统体系结构 完成对象设计 开发对象间的交互 为系统开发持久模型,13.1划分分析模型,对于一个大而复杂的系统,也要分解成若干较小的子系统,再对每个子系统进行分析求解。 子系统只是个概念实体,可以
2、把子系统当作大的类看待。 子系统结构可以简化类之间的交互模式,从而降低耦合。 通常通过寻找紧耦合的类,划分子系统。,例:ATM子系统划分,13.2系统逻辑架构,系统按照层次分解好处 每个一层次都是独立的有机整体 可以很容易的用新的实现来替换原有层次的实现 可以降低层与层之间的依赖 分层有利于标准化 利于各层逻辑的复用 使系统易于扩展和维护,缺点 会带来级联修改 过多的层次会影响性能,经典三层架构,数据访问层、业务逻辑层和表现层,多层架构,用户界面层实现了系统的主要用界面元素 系统的业务:业务层和控制器层。 持久层实现持久存储 系统类为应用提供支持性技术服务常用对象和子系统,13.3类模型设计,
3、设计关注在于系统具体实现解决方案领域 通过提供设计细节精化分析类 创建一组新的设计类,设计类实现了软件的基础设施以支持业务解决方案, 类演化为不同类型: 用户接口类、业务领域类、过程类、持久类和系统类 良好的设计类特征 完整性和充分性,简单性,高内聚性,低耦合性,接口设计,接口设计有三个重要的元素 用户界面; 和其他系统、设备、网络或其他信息生产者或使用者的外部接口; 各种设计构件之是的内部接口。,属性、方法建模,设计需要决定属性的类型 考虑组合数据项 若属性有初始值或属性可取值的范围,以及对属性的一些约束,设计时也都应该描述出来也要给出。,方法是类的职责 需要指明方法的可见性,方法的返回值,
4、参数以及参数的类型和默认值 方法实现的算法通过注释或文档的形式加以说明 属性访问通常使用setter和getter方法,对象之间可见性设计,可见性是指一个对象看见其他对象或能够发送消息给其他对象,引用其方法的能力 为了使发送消息对象能够向接收消息对象发送消息,发送对象必须具有接收对象的可见性,即发送对象必须拥有对接收对象的某种引用或指针。 可见性通常有四种方式 属性可见性:B是A的属性。 参数可见性:B是A中方法的参数。 局部可见性:B是A中方法的局部对象。 全局可见性:B具有某种方式的全局可见性,用例迭代实现,对象职责的分配和协作的设计都是非常重要和具有创造性的步骤 设计对象交互和职责分配是
5、对象设计的核心 明确了类的属性和方法后,需要重新迭代设计用例的实现 合理且均匀的分配系统职责 设计中有创造性和困难的部分进行建模。应该保持设计的轻量化和简短,,例:空闲时播放广告信息过程,例:ATM身份验证用例实现过程,重构,重构(Refactoring)是一种重新组织系统设计的技术,可以优化构件的设计而不改变其功能或行为。 即在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构 设计模式为重构提供指导 模式是面向对象设计的基石,而测试优先编程和严谨的重构则是设计演进的基石,13.4类的设计原则开闭原则,开闭原则(Open Closed Principle,OCP)指的是“一个模
6、块在扩展性方面应该是开放的而在修改方面应该是封闭的”。 设计者应该采用一种直接增加代码,而无需对软件内部代码做修改就可以扩展软件功能的设计 尽量考虑使用接口封装机制、抽象机制和多态技术对封闭和扩展区域进行隔离。,例:电视机类图,Liskov替换原则,替换原则 (Liskov Substitution Principle,LSP),“子类应当可以替换父类并出现在父类能够出现的任何地方”。 为了保证继承关系的正确性,满足替换原则的继承关系,只要继承实现了基类的子类,都可以被类的使用者使用,从而实现了系统的扩展。 如果建模的继承关系不能通过Liskov替换原则,则说明设计上可能存在问题,例:实验室和
7、设备类模型,依赖倒置原则,依赖原则(Dependency Inversion Principle,DIP),“在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类,而不是依赖于具体类”。 具体类只负责相关业务的实现,修改具体类不影响与特定业务有关的依赖关系。 正确应用对于创建可重用的框架来说是必须的,例:开关面板与节能灯的类模型,接口分离原则,接口分离原则(Interface Segregation Principle,ISP),“采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好”。 如果拥有一个针对多个客户的类,为每一个客户创建特定业务接口,例:带有集成
8、接口的服务类,例:使用接口分离设计的类,13.5设计模式,设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,单件模式,单件模式(Singleton Pattern)要求一个类有且仅有一个实例,并且提供了一个全局的访问点 解决方案:对类定义静态方法用以返回单实例对象 Singleton类中的实例构造器应设置为不允许直接创建实例。 单件模式只考虑了对象创建的管理,没有考虑到销毁的管理,单件模式模型,抽象工厂
9、模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 解决方案:创建名为工厂的抽象对象处理多系列产品的创建职责。 适用场景: 一个系统要独立于它的产品的创建、组合和表示 一个系统要由多个产品系列中的一个来配置。 强调一系列相关的产品对象的设计一并进行联合使用时 提供一个类库,而只想显示接口。,抽象工厂模式模型,13.6对象持久性建模,所谓持久数据存储就是即使在系统崩溃的情况下仍能存在的数据存储。 持久对象(Persistent Object)是指需要持久性存储的对象 存储机制主要三类 对象数据库 关系数据库 其他机制:普通文件、XML文件,映射对象,每个持久对象类在关系数
10、据库中定义为一个表,而基本数据类型的对象属性映射为表中的列 对象标识符(Object Identifier,OID)用于在关系数据库中惟一确定对象,继承关系映射,三种基本的解决方法 对整个类层次使用一个数据表 中增加objectType字段区别当前行的职责角色,每个具体类使用一个数据表 每个表代表着一个类,使得每张数据表即包含具体类的属性,又包含继承自父类的属性。,每个类使用一个数据表 父类与子类用同一个OID。子类的表的主键同时作为父类表的外键 程序员表和经理表中的employeeOID除了是表的主键外,同时还是职员表中的外键。,关联和聚合映射,在关系数据库通常使用外键实现类之间关联 映射“一对一”在联时,需要知道关联的方向性,“一对多”的关联,在“多”的一方维护添加外键 如“职员”类与“任务”类之间是一对多的关系,一个职员同时做多个任务,一个任务分配给一个职员完成。这时只要把“职员”表的主键作为外键放入到“任务”表中,实现多对多的关联,需要用到关联表 关联表中包含的属性一般都是与这种关系有关的表中键的组合,持久性框架,持久性框架(persistence framework)就是一组通用的、可复用的、可扩展的一组类,相互协作提供支持持久存储对象的服务,称为持久性服务。 为对象/关系映射服务(Object/Relational Mapping,ORM) 持久性框架将应用程序与其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 总结和工作思路(乡政府)(2篇)
- 数字化转型下C银行中小企业信贷评级体系的重构与优化
- 2025 好玩的篮球传球技巧比赛作文课件
- 2026年个人三年思想工作总结(2篇)
- 数字化赋能:三角镇政府经济发展和科技信息局人事绩效考核系统的创新与实践
- 2025年中级会计师经济法测试题测测试题及答案解析
- 数字化浪潮下:E-Learning在中小学教育中的融合与创新发展
- 数字化浪潮下网上商城购物系统的深度剖析与创新开发
- 数字化浪潮下家具产品数字虚拟展示平台的构建与实践
- 2025 可爱宠物作文课件
- 中国人民大学:2025年中国城市CSG(双碳-社会-治理)指数报告
- 道路运输安全生产考核与奖惩制度
- 2025版《煤矿安全规程》解读
- 农商银行转型发展战略方案
- 熬夜上瘾节奏课件
- 西方芭蕾史纲课件
- 印染厂工艺流程
- 首届全国行业职业技能竞赛(电力交易员)大赛考试题库-中(多选题)
- 炉渣销售管理制度
- 粮食仓储设施提升改造项目可行性研究报告
- 通风系统设备操作培训资料方案
评论
0/150
提交评论