首页 > 其他分享 >面向对象开发重点摘要【软件设计师】

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

时间:2024-09-06 18:25:29浏览次数:7  
标签:关系 用例 对象 摘要 模式 面向对象 接口 一个 设计师

文章目录


前言

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


一、面向对象基础

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行为型模式

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

标签:关系,用例,对象,摘要,模式,面向对象,接口,一个,设计师
From: https://blog.csdn.net/weixin_73527957/article/details/141958516

相关文章

  • c++的面向过程与面向对象
    面向过程与面向对象面向过程:在编程时重点考虑如何解决问题,以及解决问题的具体步骤。面向对象:在编程时重点考虑的是"谁"能解决问题(类、结构),以及"它"解决问题时所需要属性(成员变量)和功能(成员函数)。抽象:把“解决问题者”当作思考或观察对象,把解决问题所需的具备的属性和功能......
  • C语言面向对象
    我们在编写程序时,通常采用以下步骤:将问题的解法分解成若干步骤使用函数分别实现这些步骤依次调用这些函数这种编程风格的被称作面向过程。除了面向过程之外,还有一种被称作面向对象的编程风格被广泛使用。面向对象采用基于对象的概念建立模型,对现实世界进行模拟,从而完......
  • PHP8面向对象快速入门五 接口 抽象类
    在PHP中,接口是一种定义方法但不实现它们的方式。接口可以被类实现,使得这些类承诺实现接口中定义的所有方法。接口主要用于定义类的共同行为,而不涉及具体的实现细节。以下是PHP接口的基本用法:定义接口interfaceAnimal{publicfunctionmakeSound();publicfunct......
  • 【系统架构设计师】论文:论软件架构的选择与应用
    更多内容请见:备考系统架构设计师-核心总结索引论文:论软件架构的选择与应用文章目录摘要正文总结摘要公司承担了某省社会保险管理信息系统的开发工作,我在该项目中担任系统架构设计师职务,主要负责设计应用系统架构和网络安全体系架构。该系统以IC卡为信息载体,完......
  • 【系统架构设计师】论文:论软件系统架构评估
    论文:论软件系统架构评估文章目录论文一摘要正文总结论文二摘要正文总结论文一摘要2021年3月,我公司承担了国家某安全中心漏洞挖掘系统的开发工作,我在该项目中承担系统架构设计师的职务,主要负责系统的架构设计。该项目的主要目的是依托大数据平台从互联网流量中挖......
  • 14 Python面向对象编程:反射
    本篇是Python系列教程第14篇,更多内容敬请访问我的Python合集在Python中,“反射”通常指的是根据字符串查找并执行相关的类、方法或者属性的能力。Python提供了几个内置函数和语法特性来支持这种能力,比如getattr(),setattr(),hasattr(),delattr()以及dir()等。这些功能......
  • Python中的“类的属性与方法”:解锁面向对象编程的奥秘
    在这个充满数据的世界里,Python作为一门强大的编程语言,已经成为了许多开发者的首选工具。而在Python中,类的属性与方法则是构建复杂系统不可或缺的一部分。它们不仅能够帮助我们更好地组织代码,还能提高程序的可读性和维护性。今天,就让我们一起探索类的属性与方法的魅力所在,从基础到进......
  • 《C++中的面向对象编程三大特性:封装、继承与多态》
    在C++编程的广阔世界中,面向对象编程(Object-OrientedProgramming,OOP)的三大特性——封装、继承和多态,犹如三把强大的利器,帮助程序员构建出高效、可维护和可扩展的软件系统。本文将深入探讨如何在C++中实现这三大特性,并通过具体的代码示例展示它们的强大之处。一、封装(Enca......
  • python学习总结之面向对象
    1.面向对象(上)1.1定义面向对象编程:oop[objectorientedprogramming]是一种python的编程思路;面向过程:就是我们一开始学习的,按照解决问题的步骤去写代码【根据业务逻辑去写代码】,在思考问题的时候,首先分析'怎么按照步骤去实现'然后将问题解决拆解成若干个步骤,并将这些步骤对......
  • 章10——面向对象编程(高级部分)——抽象类
    介绍更多意义在于其设计意义。供子类参考的一个模板。注意细节final、private、static与重写矛盾,不可与abstract共用!补充说明static方法可以被继承,不可以被重写,若父子方法名相同,则会隐藏derive类派生类方法,调用base类基类方法。静态方法时编译时绑定的,而方法重写是运行时......