软件设计师教程(第5版)第7章 面向对象技术(更新中)

面向对象方法有【Booch】方法、【Coad】方法和【OMT】方法等。P351

面向对象方法包括面向对象【分析】、面向对象【设计】和面向对象【实现】,其界线并不明显,它们采用相同的符号表示,能方便地从分析阶段平滑地过渡到设计阶段。P351

7.1 面向对象基础P351

7.1.1 面向对象的基本概念P351

面向对象=【对象】(Object)+【分类】(Classification)+【继承】(Inheritance)+通过【消息】的通信(Communication with Messages)。P351

1.对象

在面向对象的系统中,【对象】是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。P352

【封装】是一种信息隐蔽技术,它的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。P352

2.消息

对象之间进行通信的一种构造叫作【消息】。P352

3.类

类是在对象之上的【抽象】,对象是类的【具体化】,是类的实例(Instance)。P352

类可以分为三种:【实体】类、【接口】类(【边界】类)和【控制】类。P352

【实体】类的对象表示现实世界中真实的实体,如人、物等。P352

【接口】类(【边界】类)的对象为用户提供一种与系统合作交互的方式。P352

接口类(边界类)分为【人】和【系统】两大类。P352

【人】的接口可以是显示屏、窗口、Web窗体、对话框、菜单、列表框、其他显示控制、条形码、二维码或者用户与系统交互的其他方法。P352

【系统】接口涉及到把数据发送到其他系统,或者从其他系统接收数据。P352

【控制】类的对象用来控制活动流,充当协调者。P352

4.继承

【继承】是父类和子类之间共享数据和方法的机制。P353

5.多态

在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象称为【多态】。P353

在这里插入图片描述

多态分为【通用】的和【特定】的。P354

通用的分为【参数】的和【包含】的。P354

特定的分为【过载】的和【强制】的。P354

6.动态绑定(Dynamic Binding)

【绑定】是一个把过程调用和响应调用所需要执行的代码加以结合的过程。P354

在一般的程序设计语言中,绑定是在编译时进行的,叫作【静态】绑定。P354

【动态】绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。P354

7.1.2 面向对象分析P354

【面向对象分析】包含5个活动:认定对象、组织对象、描述对象间的相互作用、确定对象的操作、定义对象的内部信息。P354

1.认定对象

2.组织对象

3.对象间的相互作用

4.基于对象的操作

7.1.3 面向对象设计P355

【面向对象设计】(【OOD】)是将OOA所创建的析模型转化为设计模型,其目标是定义系统构造蓝图。P355

1.面向对象设计的活动

2.面向对象设计的原则

面向对象设计的原则:单一责任原则(【SRP】)、开放-封闭原则(【OCP】)、里氏替换原则(【LSP】)、依赖倒置原则( 【DIP】)、接口分离原则(【ISP】)。还有 重用发布等价原则(【REP】)、共同封闭原则(【CCP】)、共同重用原则(【CRP】)、无环依赖原则(【ADP】)、稳定依赖原则(【SDP】)、稳定抽象原则(【SAP】)。P357

7.1.4 面向对象程序设计P357

【程序设计范型】是人们在程序设计时所采用的基本方式模型,决定了程序设计时采用的思维方式、使用的工具,同时又有一定的应用范畴。P357

面向对象程序设计(【OOP】)的实质是选用一种面向对象程序设计语言(【OOPL】),采用对象、类及其相关概念所进行的程序设计。P357

1.类

2.继承和类层次结构

3.对象、消息传递和方法

4.对象自身引用

5.重置

【重置】或【覆盖】是在子类中重新定义父类中已经定义的方法,其基本思想是通过一种动态绑定机制的支持,使得子类在继承父类接口定义的前提下用适合自己要求的实现去置换父类中的相应实现。P360

6.类属类

【类属类】可以看成是类的模板。P361

7.无实例的类

要创建无实例的类,仍然需要语言的支持。在C++和Java语言中,【抽象类】就是这样的类。P362

7.1.5 面向对象测试P362

对面向对象软件的测试可分为下列4个层次进行:【算法】层、【类】层、【模板】层、【系统】层。P363

【算法】层。测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。363

【类】层。测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。363

【模板】层。测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点(例如,对象之间通过发送消息相互作用)。363

【系统】层。把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。363

【面向对象测试】的主要目标也是用尽可能低的测试成本和尽可能少的测试用例,发现尽可能多的错误。363

7.2 UML P363

UML的词汇表包含3种构造块:【事物】、【关系】和【图】。P364

【事物】是对模型中最具有代表性的成分的抽象;P364

【关系】把事物结合在一起;P364

【图】聚集了相关的事物。P364

7.2.1 事物P364

UML中有4种事物:【结构】事物、【行为】事物、【分组】事物和【注释】事物。P364

【交互】由在特定语境中共同完成一定任务的一组对象之间交换的消息组成。P364

【状态机】描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。P365

【活动】是描述计算机过程执行的步骤序列,注重步骤之间的流而不关心哪个对象执行哪个步骤。P365

【交互】、【状态机】和【活动】是可以包含在UML模型中的基本行为事物。P365

7.2.2 关系P365

UML中有4种关系:【依赖】、【关联】、【泛化】和【实现】。P365

依赖的变体有【精化】、【跟踪】、【包含】和【延伸】。P366

7.2.3 UML中的图P366

【图】是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。P366

UML 2.0提供了13种图,分别是【类】图、【对象】图、【用例】图、【序列】图、【通信】图、【状态】图、【活动】图、【构件】图、【组合结构】图、【部署】图、【包】图、【交互概览】图和【计时】图。P366

【序列】图、【通信】图、【交互概览】图和【计时】图均被称为【交互】图。P366

1.类图

【类】图展现了一组对象、接口、协作和它们之间的关系。P366

类图通常包含以下类容:【类】;【接口】;【协作】;依赖、泛化和关联【关系】。P366

2.对象图

【对象】图展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。P368

对象图一般包括【对象】和【链】。P368

3.用例图

【用例】图展现了一组【用例】、【参与者】(Actor)以及它们之间的【关系】。P368

4.交互图

【交互】图用于对系统的动态方面进行建模。P369

交互图表现为【序列】图、【通信】图、【交互概览】图和【计时】图,每种针对不同的目的,能适用于不同的情况。P369

【序列】图是强调消息时间顺序的交互图;P369

【通信】图是强调接收和发送消息的对象的结构组织的交互图;P369

【交互概览】图强调控制流的交互图。P369

【交互】图用于对一个系统的动态方面建模。P369

交互图一般包含【对象】、【链】和【消息】。P370

1) 序列图

【序列图】是【场景】(Scenario)的图形化表示,描述了以时间顺序组织的对象之间的交互活动。P370

2) 通信图

【通信】图强调收发消息的对象的结构组织,在早期的版本中也被称作【协作】图。P371

【序列】图和【通信】图是同构的,它们之间可以相互转换。P371

3) 交互概览图

【交互概览】图是UML 2.0新增的交互图之一,它是活动图的变体,描述业务过程中的控制流概览,软件过程中的详细逻辑概览,以及将多个图进行连接,抽象掉了消息和生命线。P371

4) 计时图

【计时】图是另一种新增的、特别适合实时和嵌入式系统建模的交互图,关注沿着线性时间轴、生命线内部和生命线之间的条件改变。它描述对象状态随着时间改变的情况,很像示波器。P372

5.状态图

【状态】图展现了一个状态机,它由【状态】、【转换】、【事件】和【活动】组成。P372

状态图通常包括【简单】状态和【组合】状态、【转换】(事件和动作)。P373

6.活动图

【活动】图是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。P374

【活动】图一般包括活动状态和动作状态、转换和对象。P374

7.构件图

【构件】图展现了一组构件之间的组织和依赖。P375

8.组合结构图

【组合结构】图用于描述一个分类器(如类、构件或用例)的内部结构,分类器与系统中其他组成部分之间的交互端口,展示一组相互协作的实例如何完成特定的任务,描述设计、架构模式或策略。P376

9.部署图

【部署】图是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。P377

10.包图

【包】图是用于把模型本身组织成层次结构的通用机制,不能执行,展现由模型本身分解而成的组织单元以及其间的依赖关系。P377

7.3 设计模式P378

7.3.1 设计模式的要素P378

设计模式一般有以下4个基本要素:【模式名称】、【问题】、【解决方案】、【效果】。P378

在这里插入图片描述

7.3.2 创建型设计模式P379

【创建】型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。P379

1.Abstract Factory(抽象工厂)

1)意图
2)结构
3) 适用性

2. Builder(生成器)

1)意图
2)结构
3) 适用性

3. Factory Method(工厂方法)

1)意图
2)结构
3) 适用性

4. Prototype(原型)

1)意图
2)结构
3) 适用性

5. Singleton(单例)

1)意图
2)结构
3) 适用性

6. 创建型模式比较

7.3.3 结构型设计模式P384

【结构】型设计模式涉及如何组合类和对象以获得更大的结构。P384

1. Adapter(适配器)

1)意图
2)结构
3) 适用性

2. Bridge(桥接)

1)意图
2)结构
3) 适用性

3. Composite(组合)

1)意图
2)结构
3) 适用性

4. Decorator(装饰)

1)意图
2)结构
3) 适用性

5. Facade(外观)

1)意图
2)结构
3) 适用性

6. Flyweight(享元)

1)意图
2)结构
3) 适用性

7.Proxy(代理)

1)意图
2)结构
3) 适用性

8.结构型模式比较

7.3.4 行为设计模式P394

1.Chain of Responsibility(责任链)

1)意图
2)结构
3) 适用性

2.Command(命令)

1)意图
2)结构
3) 适用性

3.Interpreter(解释器)

1)意图
2)结构
3) 适用性

4.Iterator(迭代器)

1)意图
2)结构
3) 适用性

5.Mediator(中介者)

1)意图
2)结构
3) 适用性

6.Memento(备忘录)

1)意图
2)结构
3) 适用性

7. Observer(观察者)

1)意图
2)结构
3) 适用性

8. State(状态)

1)意图
2)结构
3) 适用性

9. Strategy(策略)

1)意图
2)结构
3) 适用性

10. Template Method(模板方法)

1)意图
2)结构
3) 适用性

11. Visitor(访问者)

1)意图
2)结构
3) 适用性

12. 行为模式比较

7.3.5 应用举例P407

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 系统架构设计师教程第5pdf是一本关于系统架构设计的指导教程,它提供了系统架构设计的基本理论和实践知识。这本教程主要包括以下几个方面的内容。 首先,教程介绍了系统架构设计的基本概念和原则。它解释了系统架构设计的重要性和目标,并介绍了常用的系统架构设计模式和方法。通过学习这些理论知识,读者可以对系统架构设计有一个清晰的认识。 其次,教程提供了具体的案例分析和实践经验。它通过分析一些典型的系统架构设计案例,引导读者了解如何在实际项目进行系统架构设计。教程还介绍了一些常见的架构设计问题和解决方法,帮助读者避免常见的设计错误。 此外,教程还讲解了系统架构设计的工具和技术。它介绍了一些常用的架构设计工具和建模语言,如UML和SysML,以及一些实用的技术,如面向服务架构(SOA)和微服务架构。这些工具和技术可以帮助读者更好地进行系统架构设计和沟通。 最后,教程还提供了一些对未来系统架构设计趋势和发展方向的展望。它介绍了一些新兴的架构设计理念和方法,如云计算和大数据架构。这些内容使读者能够跟上系统架构设计领域的最新发展。 总之,系统架构设计师教程第5pdf是一本全面而实用的教程,适合那些希望学习系统架构设计的读者。通过学习这本教程,读者可以了解系统架构设计的基本概念和原则,掌握实践经验和工具,提高系统架构设计的能力。 ### 回答2: 系统架构设计师教程第5是一本专门针对系统架构设计师的书籍,它的特点是全面、实用、系统性强。本书的PDF本可以提供给读者在线阅读或下载阅读。 首先,该教程首先介绍了系统架构设计的基本概念和原则,包括系统架构的定义、目标、视图和模式等。它帮助读者建立了一种全面的、系统化的架构设计思维方式,使得读者能够准确理解和把握架构设计的核心要素。 其次,该教程介绍了常见的架构设计模式和策略,如分层架构、微服务架构、事件驱动架构等。它深入解析了每种架构模式的原理、应用场景和优缺点,为读者提供了丰富的设计思路和方法。 此外,该教程还涵盖了系统架构设计过程的关键技术和工具。它介绍了常用的架构设计工具、建模语言和标准,如UML、TOGAF等。它还详细介绍了架构评审、设计文档编写和项目管理等实践技巧,帮助读者更好地应对实际工作的挑战。 最后,该教程还提供了大量的案例分析和实践经验,让读者通过实际项目的实例学习和应用系统架构设计的知识。这些案例涵盖了各行各业的不同类型的系统,如电子商务系统、金融系统、物联网系统等,具有很强的针对性和实用性。 综上所述,系统架构设计师教程第5PDF提供了一种全面、系统的学习和实践平台,帮助读者掌握系统架构设计的理论与实践,提升自己在架构设计领域的专业能力。无论是初学者还是有经验的架构师,都可以通过该教程获得宝贵的知识和经验,为自己的职业发展打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福大大架构师每日一题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值