【软考-软件设计师精华知识点笔记】第七章 面向对象技术

前言

由于笔记复制到CSDN样式失效,没有精力再重新完整的检查并设置一遍样式,有积分的可以前往下载word、pdf、有道云笔记版本。
需要说明的是,下载的内容与本篇分享内容一致,只有样式的区别【比如重点记忆、常考内容有颜色、字号、自重等样式,目录结构更完善,表格不是图片,等】

本章下载地址:
https://download.csdn.net/download/chengsw1993/85835830

如果发现文章存在阅读不同、显示异常等内容,请评论区告知以便修改,应该都是CSDN的markdown语法导致的。

系列文章

上一篇:【软考-软件设计师精华知识点笔记】第六章 系统开发与运行

下一篇:【软考-软件设计师精华知识点笔记】第八章 算法分析设计

面向对象基础

基本概念

对象:基本的运行实体,为类的实例,封装了数据和行为的整体,如学生、汽车等真实存在的实体。对象具有清晰的边界、良好定义的行为和可扩展性。

消息:对象之间进行通信的一种构造称为消息。

类:是对象的抽象,定义了一组大体相似的对象结构,定义了数据和行为。包括实体类(用于对必须存储的信息和相关行为建模的类,是需要长久保存且一直存在的类)、边界类(系统内部与系统外部的业务主角之间进行交互建模的类)、控制类(用于对一个或几个用例所特有的控制行为进行建模,在用例执行过程中被动出现的特定行为的类)。在领域类模型中会涉及描述类自身情况的属性与操作,还会有描述类与类之间的关联,但不会有对象层次的内容。

继承:父类和子类之间共享数据和方法的机制。是类之间的一种关系。

多态:不同的对象收到同一个消息时产生完全不同的反应。包括参数多态(不同类型参数多种结构类型)、包含多态(父子类型关系)、过载多态(类似于重载,一个名字不同含义)、强制多态(强制类型转换)四种类型。多态由继承机制支持。

覆盖/重写:子类在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现。即在子类中重定义一个与父类同名同参的方法。

函数重载:与覆盖要区分开,函数重载与子类父类无关,且函数是同名不同参数。

封装:一种信息隐蔽技术,其目的是使对象的使用者和生产者分离,也就是使其他开发人员无需了解所要使用的软件组件内部的工作机制,只需知道如何使用组件。

静态类型是指一个对象的类型在编译时就确定;

动态类型指对象类型在运行时才能确定。

静态绑定(静态分配)是基于静态类型的,在程序执行前方法已经被绑定;
动态绑定是基于动态类型的,运行时根据变量实际引用的对象类型决定调用哪个方法,动态绑定支持多态。

面向对象分析

面向对象分析:是为了确定问题域,理解问题。

包含五个活动:认定对象(按自然存在的实体确定对象)、组织对象(分析对象关系,抽象成类)、对象间的相互作用(描述各对象在应用系统中的关系)、确定对象的操作(操作,如创建增加删除等)、定义对象的内部信息(属性)。

面向对象设计:是设计分析模型和实现相应源代码,在目标代码环境中这种源代码可被执行。设计问题域的解决方案。

面向对象程序设计:用面向对象程序设计语言实现设计方案。详见下午软件设计。

面向对象测试:与普通测试步骤并无不同。

可分为四个层次:算法层(测试类中定义的每个方法,类似单元测试)、类层(测试同一个类中所有方法与属性的相互作用,特有的模块测试)、模板层(测试一组协同工作的类之间的相互作用,类似集成测试)、系统层(类似系统测试)。

UML

UML是统一建模语言,和程序设计语言并无关系。

UML三个要素:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制。

UML的基本构造块包括:事物(对模型中最具有代表性的成分的抽象)、关系(把事物结合在一起)、图(聚集了相关的事物)。

事物

UML中有四种事物:结构事物、行为事物、分组事物、注释事物

结构事物:模型的静态部分,如类、接口、用例、构件等;如下图示例:
在这里插入图片描述

行为事物:模型的动态部分,如交互、活动、状态机。
在这里插入图片描述

分组事物:模型的组织部分,如包。

注释事物:模型的解释部分,依附于一个元素或一组元素之上对其进行约束或解释的简单符号。
在这里插入图片描述

关系

依赖:一个事物的语义依赖于另一个事物的语义的变化而变化

关联:是一种结构关系,描述了一组链,链是对象之间的连接。分为组合和聚合/聚集,都是部分和整体的关系,其中组合事物之间关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。

泛化:一般/特殊的关系,子类和父类之间的关系

实现:一个类元指定了另一个类元保证执行的契约。
在这里插入图片描述

类图(静态图)

类图:静态图,为系统的静态设计视图,展现一组对象、接口、协作和它们之间的关系。UML类图如下:
在这里插入图片描述

多重度:1…*表示1个或多个 ,1就表示1个
属性
操作
关系

对象图(静态图)

对象图:静态图,展现某一时刻一组对象及它们之间的关系,为类图的某一快照。
在没有类图的前提下,对象图就是静态设计视图,如下:
在这里插入图片描述

用例图(静态图)

用例图:静态图,展现了一组用例、参与者以及它们之间的关系。

用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作。

用例之间的关系:包含、扩展、泛化
在这里插入图片描述

序列图(动态图)

序列图:即顺序图,动态图。是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。

同步消息(进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息,用实心三角箭头表示),异步消息(发出消息后继续执行,不引起调用者阻塞,也不等待返回消息,由空心箭头表示)、返回消息(由从右到左的虚线箭头表示)三种。如图:
在这里插入图片描述

通信图(动态图)

通信图:动态图,即协作图,是顺序图的另一种表示方法,也是由对象和消息组成的图,只不过不强调时间顺序,只强调事件之间的通信,而且也没有固定的画法规则,和顺序图统称为交互图。如下:
在这里插入图片描述

状态图(动态图)

状态图:动态图,展现了一个状态机,描述单个对象在多个用例中的行为,包括简单状态和组合状态。

转换可以通过事件触发器触发,事件触发后相应的监护条件会进行检查。状态图中转换和状态是两个独立的概念,如下:图中方框代表状态,箭头上的代表触发事件,实心圆点为起点和终点

在这里插入图片描述

活动图(动态图)

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

活动的分岔和汇合线是一条水平粗线。

并发分岔、并发汇合、监护表达式、分支、流等名词及含义。每个分岔的分支数代表了可同时运行的线程数。活动图中能够并行执行的是在一个分岔粗线下的分支上的活动。
在这里插入图片描述

构件图(静态图)

构件图(组件图):静态图,为系统静态实现视图,展现了一组构件之间的组织和依赖。如下:
在这里插入图片描述

部署图(静态图)

部署图:静态图,为系统静态部署视图,部署图是物理模块的节点分布。它与构件图相关,通常一个结点包含一个或多个构件。其依赖关系类似于包依赖,因此部署组件之间的依赖是单向的类似于包含关系。如下:
在这里插入图片描述

设计模式

每一个设计模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便的复用成功的该计和体系结构。

设计模式的四个基本要素:模式名称、问题(应该在何时使用模式)、解决方案(设计的内容)、效果(模式应用的效果)。

分为三类,创建型模式主要是处理创建对象,结构型模式主要是处理类和对象的组合,行为型模式主要是描述类或者对象的交互行为,具体如下(红色粗体记忆关键字表示常考必须记住的):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

观察者模式:Listener、Event
装饰器模式:Wrapper、Decorator
适配器模式:HandlerAdatper根据Handler规则执行不同的Handler
Spring 设计模式总结

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 面向对象编程的特点: - 封装:将数据和方法组合成一个类,并对外提供接口,隐藏内部实现细节,保证数据安全性和代码的可维护性。 - 继承:通过子类继承父类的属性和方法,实现代码的复用和扩展。 - 多态:同一种行为在不同情境下的不同表现形式,可以通过重载、重写和接口实现。 2. 类和对象- 类是一种抽象的概念,是描述对象具有的属性和方法的模板。 - 对象是类的一个实例,具有这个类所描述的属性和方法。 3. 成员变量和成员方法: - 成员变量是描述对象状态的数据,可以是基本类型、对象类型或数组类型。 - 成员方法是描述对象行为的操作,可以是构造方法、普通方法、静态方法和抽象方法。 4. 构造方法和析构方法: - 构造方法是创建对象时调用的特殊方法,用于初始化对象的成员变量。 - 析构方法是销毁对象时调用的特殊方法,用于释放对象占用的资源。Java中不需要显式地调用析构方法,由垃圾回收器自动回收。 5. 访问控制: - 访问控制可以限制类的成员变量和成员方法的访问范围,保证数据的安全性和代码的可维护性。 - Java中有四种访问控制修饰符:public、protected、default、private。 6. 静态变量和静态方法: - 静态变量属于类,不属于对象,被所有对象共享。 - 静态方法可以通过类名调用,不需要创建对象。 7. final关键字: - final可以修饰类、成员变量和成员方法。 - final修饰的类不能被继承,修饰的变量是常量,修饰的方法不能被重写。 8. 抽象类和接口: - 抽象类是一种不能被实例化的类,只能作为父类被继承,可以包含抽象方法和普通方法。 - 接口是一种完全抽象的类型,只包含抽象方法和常量,用于定义规范和约束。类可以实现多个接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值