第7章 面向对象技术
目录
- 面向对象基础
- 面向对象的设计原则
- 面向对象分析
- 面向对象设计
- 面向对象程序设计
- 面向对象测试。
- UML
- 事物
- 关系
- 图
- 类图(Class Diagram)
- 对象图(Object Diagram)
- 用例图(Use Case Diagram)
- 序列图(Sequence DIagram)
- 通信图/协作图(Communication Diagram)
- 交互概览图(Interaction Overview Diagram)
- 计时图(Timing Diagram)
- 状态图(state Diagram)
- 活动图(Activity Diagram)
- 构件图(Component Diagram)
- 组合结构图(Component Diagram)
- 部署图
- 包图
- 设计模式
- 设计模式要素
- 设计模式
- 创建型设计模式
- 工厂方法(Factory Method)
- 抽象工厂(Abstract Factory)
- 构建器(Builder)
- 原型(Prototype)
- 单例(Singleton)
- 结构型设计模式
- 适配器(Adapter)
- 桥接(Bridge)
- 组合(Composite)
- 装饰(Decorator)
- 外观(Facade)
- 享元(FlyWeight)
- 代理(Proxy)
- 行为型设计模式
- 责任链(Chain of Responsibility)
- 命令(Command)
- 解释器(Interpreter)
- 迭代器(Iterator)
- 中介器(Mediator)
- 备忘录(Memento)
- 观察者(Observer)
- 状态(State)
- 策略(Strategy)
- 模板方法(Template Method)
- 访问者(Visitor)
面向对象基础
客观世界由许多具体的事物,事件,概念和规则组成,这些均可以被看做成对象。面向对象==(Object-Oriented,OO)==方法是一种非常实用的系统化软件开发方法,它以客观世界中的对象为中心,其分析和设计思想符号人们的思维方式,分析和设计的结果与客观世界的实际比较接近,容易被人接受。
面向对象=对象(object)+分类(Classification)+继承(Inheritance)+通过消息的通信(Communication with Messages)
面向对象的设计原则
1,单一责任原则:就一个类而言,应该仅有一个引起他变化的原因。即,当需要修改某个类的时候原因有且只有一个,让一个类只做一种类型责任。
2,开放封闭原则:软件实体(类,模块,函数等)应该是可扩展的,即开放的,但是不可修改的,即封闭的。
3,里氏替换原则:子类型必须能够替换掉他们的基类型。即,在任何父类可以出现的地方,都可以用子类的实例来赋值给父类型的引用。当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有是一个(is-a)关系。
4,依赖倒置原则,抽象不应该依赖于细节,细节应该依赖于抽象,即,高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
5,接口分离原则:不强迫客户依赖于它们不同的方法,接口属于客户,不属于它所在的类层次结构。即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这样做的好处就在可以最大限度地应对可能的变化。
6,重用发布等价原则:重用的粒度就是发布的粒度。
7,共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对包中的所有类产生影响,而对于其他的包不造成任何影响。
8,共同重用原则:一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
9,无环依赖原则: 在包的依赖关系图中不允许存在环,即包之间的结构必须是一个直接的五环图形。
10,稳定依赖原则:朝着稳定方向进行依赖。
11,稳定抽象原则:包的抽象程度应该和其稳定程度一致。
面向对象分析
面向对象分析的目的是获得对应用问题的理解,理解的目的是确定系统的功能和性能要求。面向对象分析技术可以将系统的行为和信息间的关系表示为迭代构造特征。
主要活动: 1,认定对象。2,组织对象。3,对象间的相互作用。4,定义对象的操作。5,定义对象的内部信息。
面向对象设计
面向对象设计的含义是设计分析模型和实现相应的源代码。在目标代码环境中,这种源代码可以被执行。通常情况下,由概念模型生成的分析模型被装入到相应的执行环境中,还需要被修改。
主要活动:1,识别类及对象,2,定义属性、3,定义服务,4,识别关系、5,识别包。
面向对象程序设计
面向对象程序设计的实质是选用一种面向对象程序设计语言,采用对象,类及相关概念所进行的程序设计。它的关键在于加入了类的继承性,从而进一步提高了抽象程序。
面向对象测试。
4个层次
1,算法层,用于测试类中定义每个方法,基于上相当于传统软件测试中的单元测试。
2,类层,用于测试封装在同一个类中的所有方法与属性之间的相互作用,在面向对象软件中,类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。
3,模板层,用于测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试。但是也有面向对象软件的特点。如对象之间通过发送消息相互作用。
4,系统层,把各个子系统组装成完整的面向对象的软件系统,在组装过程中进行测试。
UML
UML(统一建模语言)是面向对象软件的标准化建模语言。
UML的词汇表包含3种构造块:事物,关系和图。事物是对模型中最具有代表性的成分的抽象。 关系把事物结合在一起;图聚集了相关的事物。
事物
uml中有4种事物:结构事物,行为事物,分组事物和注解事物
第7章 面向对象技术相关推荐
- 数据结构与算法(C#版)第二章 C#语言与面向对象技术(下)V1.0
由于本学期我给本科生上<数据结构与算法>这门课程,边上边把自己的教案进行总结,发到CSDN上面,希望大家多多指正. 第二章 C#语言与面向对象技术(下) 二.面向对象技术 5.属性 6.索 ...
- 数据结构与算法(C#版)第二章 C#语言与面向对象技术(中)V1.0
由于本学期我给本科生上<数据结构与算法>这门课程,边上边把自己的教案进行总结,发到CSDN上面,希望大家多多指正. 第二章 C#语言与面向对象技术(中) 二.面向对象技术 1.类与对象 2 ...
- 数据结构与算法(C#版)第二章 C#语言与面向对象技术(上)V1.0
由于本学期我给本科生上<数据结构与算法>这门课程,边上边把自己的教案进行总结,发到CSDN上面,希望大家多多指正. 第二章 C#语言与面向对象技术(上) 一.C#语言 1.数据类型 2.常 ...
- python面向对象编程指南 脚本之家_python对象及面向对象技术详解
本文实例讲述了python对象及面向对象技术.分享给大家供大家参考,具体如下: 1 先看一个例子. 本章将讲解这个例子程序: 文件: fileinfo.py: """Fr ...
- java笔记:第6章 面向对象程序设计
第6章 面向对象程序设计 6.1面向对象技术基础 面向对象三大特征:封装性, 继承性,多态性 封装性:1. 把属性和方法都放在一起 2.实现信息隐藏 类和对象的关系:类是对象的抽象描述.对象是类的实 ...
- 悟透delphi 第十一章 面向对象数据库基础
第十一章 面向对象数据库基础 第二节数据对象的标识 我们在关系数据库的设计和开发中,可能经常需要一些唯一的编号或标识,用来作为关键字,以区别每一个不同的人,每一张不同的单据,每一次不同的信息登记,等等 ...
- 【数据库系统】数据库系统概论====第十三章 数据库技术发展
第十三章 数据库技术发展 文章目录 第十三章 数据库技术发展 13.1数据库技术发展概述 13.2数据库发展的3个阶段 13.2.1第一代数据库系统 13.2.2第二代数据库系统 13.2.3新一代数 ...
- 《编程机制探析》第六章 面向对象
<编程机制探析>第六章 面向对象 面向对象(Object Oriented)是命令式编程的主流编程模型,其概念极其重要.可以说,命令式编程几乎就是面向对象的天下. 面向对象(Object ...
- 面向对象技术在开放式数控中的应用
数控(NC,Numerical Control)是一种用数字化的信息(数字.字母和符号)对某一工作过程(如加工.测量.装配等)进行可编程的自动控制技术. 数控系统(Numerical Control ...
最新文章
- Go 学习笔记(24)— 并发(03)[通道特点、通道声明、通道发送/接收/关闭、单向通道]
- JQuery实现表格行当复制
- [云炬创业学笔记]第一章创业是什么测试3
- 第96:SVM简介与简单应用
- 合并excel文件 C语言,如何用VBA函数合并多个文件
- 整理自己的.net工具库
- 陪玩行业怎么找客户?想做线上引流?这篇文章打开你的思路!
- 圣水盆景区是闾山最著名的景点
- 手机里面android什么意思,wipe什么意思?安卓手机如何wipe
- CUDA开源 轻松跑AMD GPU/Intel x86 CPU
- 数据中心加湿系统计算及方法探讨【新规范加湿方式对比及计算分析】
- 伸缩盒header固定content变更,footer固定
- 家里6只猫,我是如何分辨品种?前端程序员的AI识猫
- 如何实现字体沟边与发光特效?
- matlab pca 主元 贡献,主元分析(PCA)原理
- 2021年甘肃省安全员C证报名考试及甘肃省安全员C证考试报名
- 模拟量采集模块4-20ma0-10v0-5v转rs485modbus 2/4/8/16路电流电压输出输入
- python 互质数_程序要计算最少数量的操作以使数字在Python中不是互质数?
- 大光的妈妈给了大光100元,让他去超市买东西,牙膏5元/支,牙刷2元/支,肥皂3元/个,100元买这三种恰好花光,请问有多少种可能性
- SIMD 单指令,多数据
热门文章
- cuda学习(5):使用cuda核函数加速warpaffine
- can‘t connect to mysql server on localhost解决办法。 net start mysql——无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
- 《Investigating Typed Syntactic Dependencies for TSC Using GAT》论文笔记
- 工信部教育与考试中心-软件测试工程师考试题A卷-答
- MySQL的地理位置类型
- RWD----响应式网页设计
- 【ubuntu】解决 Certificate verification failed: The certificate is NOT trusted
- 电脑不分盘有没有关系
- Android 从零开始实现微信支付
- LaTeX入门学习(2)(安装)