- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 面向对象设计-2
对象设计的主要任务:
精化类的属性和操作
明确类之间的关系
整理和优化设计模型; 4.4.1 对类的属性的处理;4.4.1 对类的属性的处理;(1) 回顾属性的来源;
具体说明属性的名称、类型、
缺省值、可见性等;
Public: ‘+’;
Private: ‘-’;
Protected: ‘#’。;(3) 在哪里展示非简单数据类型和纯数据值? ;(4) 对属性的数量和单位建模;(5) 对属性的处理;分析阶段的数据类型只能是简单的、原始的数据类型,并不表示如C++、Java 、Smalltalk中的属性(数据成员、实例变量)
(分析中的类图是对问题的存在建立的分析模型,而不是软件实体的分析模型)。;在分析阶段的对象模型中, 不是使用属性,而是使用关联来联系两个概念的。;4.4.2 关联 (Association)的设计;(1) 四种连接;对象的连接方式;关联源对象;用java实现关联: ;(2) 增加冗余关联,提供访问效率;(3) 对限定关联(qualified association)的考虑;图4-65 关联的限定符;在设计类图中,导航是角色的一个特性,它说明从源对象到目标对象沿着关联有一个单向的链接。;POST;1;分析中的关联 ,是增进对问题的理解为目的 (不是对数据流、实例变量连接等所做的一条声明)。;在类图中,依赖关系描绘类之间的非属性的可见性时很有用,即描述参数、全局、局部可见性时很有用。; 图4-68 非属性可见性的依赖关系;(5) 对关联类的设计;上述设计有两点不足:;
Supplier
company-name:String
address:String
trades: Trades[*]
;例如:飞机在每次飞行中,有两个驾驶员(pilot-”人” 类),航班(Flight), 飞机(Airplane)和人(Person),有如下两个设计,评价设计。;(1) 调整继承结构;(1) 调整继承结构;委派机制;(2) 解决死板的继承;(3) 关于关系环的问题;关系环能真实地反映实际应用情况:如电脑系统的局部类;图4-79 属性、零件、部件组成的双重关系环;Group;反向关系环;
二元关联类;
网络与结点是Link的对象管理器;
谁负责管理连接对象?;4.4.4 应用设计模式(Design Pattern)定义操作;(1) 设计模式的概念(design pattern);(1) 设计模式的概念(design pattern);模式名
问题
情景
约束;(3) 设计模式的分类;Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
Factory Method:定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类。
Prototype:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
Singleton: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。;结构型模式;Chain of Responsibility:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
Command:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
Interpreter:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语句中的句子。
Iterator:提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。
Mediator:用一个中介对象来封装一系列的对象交互。;行为型模式;(4) 设计模式的关系;(5) 介绍职责分配中通用原则的模式; 解决方案: 将一个职责分配给信息专家。
问题: 面向对象的设计中什么是最基本的职责
分配原则。 ;Sale;Sli:SalesLineItem;说明:;Builder模式:
用于指导对象实例创建任务的分配。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。; 是为了将构建复杂对象的过程和它的部件解耦。
注意: 是解耦过程和部件。
因为一个复杂的对象,不但有很多大量组成部分,如汽车,有很多部件:车轮方向盘 发动机还有各种小零件等等,部件很多,如何将这些部件装配成一辆汽车,这个装配过程也很复杂(需要很好的组装技),Builder模式就是为了将部件和组装过程分开。
用于指导对象实例创建任务的分配。;方案:将创建一个类A的实例的职责指派给类B
您可能关注的文档
- 第10、11、13章 Internet操作基础与病毒防护.ppt
- 第08章 点合成运动chongxiu.ppt
- 第10章 JSTL和标签文件.ppt
- 第10章 API 函数应用.pdf
- 第10章 基于组件开发技术.pdf
- 第09章 Internet接入和服务.ppt
- 第08章O1V型自动变速箱检修1.doc
- 第10章 Web服务器Apache配置.pdf
- 第10章__类库和C++标准模板库STL.ppt
- 第10课《顺序结构》ppt2 九年级信息技术.ppt
- 浙江省临海市白云高级中学2025届高三历史3月月考试题.doc
- 云南拾谷县第一中学2024_2025学年高二物理上学期10月月考试题.doc
- 2025版高考生物总复习第13讲基因的分离定律教案苏教版.doc
- 湖北省黄石实验高中2024_2025学年高一历史下学期期末考试模拟卷.doc
- 通史版2025版高考历史大一轮复习专题七近代化的曲折发展__中日甲午战争至五四运动前4第4讲从维新思想到新文化运动课后达标检测含解析新人教版.doc
- 2024年高考数学考试大纲解读专题04导数及其应用含解析文.doc
- 河南省许汝平九校联盟2024_2025学年高一语文上学期期末考试试题扫描版无答案.doc
- 江西省吉安市吉水县第二中学2024_2025学年高一历史上学期第二次月考试题.doc
- 北京市平谷区2025届高三政治一模考试试题含解析.doc
- 2025届中考物理第四讲物态变化专项复习测试无答案新人教版.docx
文档评论(0)