面向对象
参考
- https://www.yuque.com/saodai/ss8tp9
- B站视频
- 面向对象基本概念
- 如何识别是面向对象:对象 + 分类 + 继承 + 通过消息的通信
- 类:定义了一组大体上相似的对象,是一组对象的抽象
- 类分为三种
- 实体类:表示显示世界中的真实实体,如人物等
- 接口类(边界类):为用户提供一种与系统合作交互的方式,例如 二维码、条形码等
- 控制类:用来控制活动流,充当协调者
- 对象:是基本的运行时实体,一个对象中既有属性又有行为(作用于数据的操作),一个对象通常可由对象名、属性、方法组成
- 消息:是对象之间通信的一种构造
- 重载:是在同一个位置上一系列 方法名相同,但是形参类型或者个数不同的方法
- 封装:是一种信息隐蔽技术,目的是使对象的使用者和生产者分离,使对象的定义和实现分开
- 继承:是父类和子类之间共享数据和方法的机制,一个父类可以有多个子类,这些子类都是父类的特例,父类描述了子类的公共属性和方法
- 一个子类有一个父类叫单重继承,一个子类有多个父类叫多重继承,多重继承可能导致子类中存在二义性的成员
- 覆盖:一个继承关系中,子类以更具体的方式实现从父类继承的方法,称为覆盖或者重写
- 多态:收到消息是对象要予以响应,不同的对象收到同一个消息可以产生完全不同的结果,这个现象称为多态,
- 多态的实现受继承支持,利用继承的层次关系,将具有通用功能的消息放在高层次,将不同的实现放在低层次,这些低层次生成的对象能够给消息不同的响应
- 多态的四类形式:
- 通用多态:参数多态(应用最广泛)、包含多态(常见的例子:子类型化)
- 特定多态:过载多态(同一个名字在不同的上下文所代表含义不同)、强制多态
- 绑定就是一个方法的调用与调用这个方法的类连接在一起的过程,主要分为静态绑定和动态绑定
- 静态绑定,就是在程序运行前,编译阶段就能够确定方法由谁调用
- 动态绑定,在运行时根据具体的对象类型进行绑定,动态绑定支持继承和多态
- 面向对象设计原则
- 单一职责原则:一个类仅有一个引起他变化的原因,一个类只做一种类型责任
- 开放-封闭原则:软件实体应该是可扩展的(开放),但是不可修改(封闭)
- 里式替换原则:子类必须要能够完全替代父类
- 依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象;高层模块不应依赖于低层模块,二者都应该依赖于抽象
- 接口分离原则:接口属于客户,不属于它所在的类层次结构,抽象级别不应有对细节的依赖
- 共同封闭原则:一个变化如果对一个包产生影响,则将对该包中的所有类产生影响,而对于其他包不产生影响
- 共同重用原则:如果重用包中的一个类,那么就要重用包中的所有类
- 面向对象分析
- 面向对象分析的目的:为了获得对应用问题的理解
- 面向对象分析的五个活动:认定对象 – 组织对象 – 描述对象间的相互作用 – 确定对象的操作 – 定义对象的内部信息
- 认定对象:用来定义问题域,以自然存在的 名词作为一个对象
- 定义领域模型是面向对象分析的关键步骤之一,它按照对象分类的角度来创建对象领域的描述,包括定义概念、属性和重要的关联,其结果用类图来组织
- 面向对象设计
- 基于面向对象分析的结果,将分析结果,转化为设计模型,定义系统构造蓝图
- 面向对象设计:获得对应问题的解决方案,实现系统,关注技术及实现层面的细节
- 面向对象设计的五个活动:识别类及对象 – 定义属性 – 定义服务 – 识别关系 – 识别包
- 面向对象程序设计
- 实质是选用一种面向对象语言,采用 对象、类等相关概念所进行的程序设计
- 面向对象测试
- 面向对象测试的四个层次:算法层 – 类层 – 模板层 – 系统层