第一节:面向对象基本概念
-
对象:
将人、物抽象为对象,对象包含属性和方法。
-
类:
将对象的共性抽取出来形成了类。类分为实体类(与数据对应)、边界类(与外界交互的类)、控制类(类与类之间的衔接)。
-
封装:
将属性设为私有,用公共接口(方法)调用私有属性。
-
继承与泛化
继承指子类继承父类;将多个类的共性抽取出来形成一个上层类,这个过程叫做泛化。
-
多态
同样的操作控制不同的对象。
-
接口
是一种特殊的类,只有方法的定义没有方法的实现。
-
消息
对象之间进行交互的时候所采用的机制,采用异步的方式。
-
组件
即构建。
-
模式和复用
模式是一种经验的传承。
第二节:设计原则
- 单一职责原则:设计目的单一的类。降低类与类之间的关联度,降低耦合度。
- 开放-封闭原则:对扩展开放,对修改封闭。使用新的类解决问题,而不是修改原有的类,避免引入新的问题。
- 李氏替换原则:子类可以替换父类。不要盲目的重载父类函数。
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。依赖于接口可以使得操作变得更加灵活。
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
- 组和重用原则:要尽量使用组合,而不是继承关系达到重用目的。因为继承是高耦合的关系。
- 迪米特原则(最小知识法则):一个对象应当对其他对象有尽可能少的了解。通过封装实现。
第三节:UML
类图:类之间关系的图
对象图:对象之间关系的图
包图:包之间关系的图
构件图:该图是描述系统构件与构件之间、类与接口之间的关系图
部署图:软件的部件应该部署在哪个硬件的节点上面
制品图
动态图/行为图包括:
用例图:表达的是系统和外部的交互关系
顺序图/序列图:强调了时间顺序的通信图
状态图:表达的是状态的变迁、转移的情况
活动图:与流程图的结构一致
第四节:设计模式
1. 设计模式的基本概念
三种设计模式:
- .架构模式:是软件设计中的高层决策,例如C/S结构就属于架构模式。
- 设计模式:反映了开发软件系统过程中所作的基本设计决策,而设计模式则是主要关注软件系统的设计,与具体的实现语言无关,是在软件开发过程中,经过验证的,用于解决在特定环境下的、重复出现的、特定问题的解决方案。
- 惯用法:是最底层的模式,关注软件系统的设计与实现,实现时通过特定的程序设计语言来描述构件与构建之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如c++语言的惯用法就是:引用–计数。
2. 设计模式的分类
设计模式可以被分成三种:创建型模式、结构型模式、行为型模式
创建型模式:
结构型模式:
适配器模式:想使用一个已经存在的类,而它的接口不符合描述
装饰模式:在不影响其他对象的情况下,以动态透明的方式给单个对象添加职责
桥接模式:不希望在抽象和它的实现部分之间有一个固定判定关系
享元模式:即对象共享
行为型模式:
参考视频:https://www.bilibili.com/video/BV1yU4y1371J?p=153