面向对象开发重点摘要【软件设计师】


前言

本文是在备考软考-软件设计师时编写的,为了记忆重点内容,内容较为简略,只是粗浅的提及


一、面向对象基础

1.1基本概念

对象
属性(数据)+方法(操作)+对象ID
类(实体类/控制类/边界类):
对象的模板或蓝图,定义了对象的属性和方法
接口
它只有方法定义没有实现
封装
隐藏对象的属性和实现细节,仅对外公开接口(信息隐藏技术)
继承
允许子类继承父类的属性和方法
多态
允许不同类的对象对同一消息做出响应可以有不同的解释执行结果
重载
一个类可以有多个同名而参数类型不同的方法
重置
在子类中重新定义父类中已经定义的方法
动态绑定
根据接收对象的具体情况将请求的操作与实现的方法进行连接(运动是绑定)

1.2面向对象开发流程

面向对象分析

  • 认定对象(名词)
  • 组织对象(抽象成类)
  • 对象间的相互作用
  • 基于对象的操作

面向对象设计

  • 设计类及对象
  • 定义属性
  • 定义服务
  • 识别关系
  • 识别包

面向对象开发

  • 程序设计范式
  • 选择一种OOPL

面向对象测试

  • 算法层
  • 类层
  • 模板层
  • 系统层

二、UML

2.1UML图的概念及分类

概念
UML图是一种模型化语言,模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框、连接线和作为模型附加信息之用的文本。这些元素在UML规则中相互联系和扩展,共同构成了对系统的全面描述。

结构图

类型关键词
类图一组对象、接口、协作和它们之间的关系
对象图一组对象一以及它们之间的关系
包图描述系统各个包之间的关系和依赖
组合结构图分解类、组件或用例的内部结构
构件图一组构件之间的组织和依赖
部署图描述系统的硬件结构

行为图

类型关键词
用例图用例、参与者以及它们之间的关系
顺序图强调按时间顺序
通信图强调收发消息的对象之间的组织结构
定时图关注对象在改变状态时的时间约束条件
状态图由状态、转换、事件和活动组成
活动图一个活动到另一个活动的流程

2.2UML中的关系

用例图关系

  1. 包含关系:表示一个用例(基础用例)的行为包含了另一个用例(包含用例)的行为
  2. 扩展关系:表示在特定条件下,一个用例(扩展用例)会对另一个用例(基础用例)进行扩展
  3. 泛化关系:也称为继承关系,表示一个用例可以被特别列举为一个或多个子用例

类图关系

  1. 依赖关系:表示一个类依赖于另一个类的定义
  2. 泛化关系:表示一个类是另一个类的一般化,即子类继承父类的所有属性和方法
  3. 组合关系:也表示整体与部分的关系,但整体与部分具有相同的生命周期
  4. 聚合关系:表示整体与部分的关系,但整体与部分可以具有不同的生命周期
  5. 实现关系:接口与类之间的关系

三、设计模式

3.1设计模式分类汇总

创建型

  1. 工厂方法模式(factory method)
  2. 抽象工厂模式(abstract factory)
  3. 原型模式(prototype)
  4. 单例模式(singleton)
  5. 构建器模式(builder)

结构型

  1. 适配器模式(adapter)
  2. 桥接模式(bridge)
  3. 组合模式(composite)
  4. 装饰模式(decorator)
  5. 外观模式(facade)
  6. 享元模式(flyweight)
  7. 代理模式(proxy)

行为型

  1. 模板方法模式(template method)
  2. 职责链模式(chain of responsibility)
  3. 命令模式(command)
  4. 迭代器模式(iterator)
  5. 中介者模式(mediator)
  6. 解释器模式(interpreter)
  7. 备忘录模式(memento)
  8. 观察者模式(oserver)
  9. 状态模式(state)
  10. 策略模式(straegy)
  11. 访问者模式(visitor)

3.2创建型模式

设计模式说明关键词
工厂方法模式定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟动态生产对象
抽象工厂模式提供一个接口,可以创建一系列相关或互相依赖的对象,而无需指定它们具体的类生产成系列对象
构建器模式将一个复杂类的表示与其改造相分离,使得相同的构建过程能够得出不同的表示复杂对象构造
原型模式用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象克隆对象
单例模式保证一个类只有一个实例,并提供一个访问它的全局访问点单实例

3.3结构型模式

设计模式说明关键词
适配器模式将一个类的接口转换成用户希望得到的另一个接口。它使原本不相容的接口得以协同工作转换接口
桥接模式将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化继承数拆分
组合模式将对象组合成树型结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性树形目录结构
装饰模式动态地给一个对象添加一些额外的职责动态附加职责
外观模式为子系统中的一组接口提供一个一致的界面,使得子系统更容易使用对外统一接口
享元模式运用共享技术来有效地支持大量细粒度对象的复用共享
代理模式为其他对象提供一种代理以控制对这个对象的访问快捷中介

3.4行为型模式

设计模式说明关键词
职责链模式解耦发送者和接收者,通过构建一条责任链来逐一处理请求。请求沿着链传递,直到有一个处理者能够处理它为止职责传递
命令模式将请求封装成对象,从而使得可以参数化客户端对象、队列或记录请求日志,并支持可撤销的操作日志记录
解释器模式给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子
迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示数据集合
中介者模式用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互不直接引用
备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态存档
观察者模式定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态时,其所有依赖者都会得到通知并被自动更新联动
状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类状态变类
策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户方案切换
模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中框架
访问者模式表示一个作用于某对象结构中的各元素的操作数据和操作分离
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清酒伴风(面试准备中......)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值