面向对象基本概念
面向对象基本概念
- 对象
- 类(实体类、边界类、控制类)
- 抽象
- 封装
- 继承与泛化
- 多态
- 接口
- 消息
- 组件
- 模式和复用
设计原则
- 单一职责原则:设计目的单一的类
- 开放-封闭原则:对扩展开放,对修改封闭
- 李氏(Liskov)替换原则:子类可以替换父类
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
- 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能的了解
UML
![UML](https://images.mzzxr.top/niuniu/program/%E8%BD%AF%E8%80%83/1604497017000.png)
设计模式的概念
- 架构模式
- 软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基础设计决策
- 设计模式
- 惯用法
- 是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如引用-计数就是C++语言中的一种惯用法
设计模式的分类
![设计模式的分类](https://images.mzzxr.top/niuniu/program/%E8%BD%AF%E8%80%83/1604500129000.png)
创建型模式
设计模式名称 | 简要说明 |
Abstract Factory 抽象工厂模式 | 提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类 |
Builder 构建器模式 | 将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示 |
Factory Method 工厂方法模式 | 定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得了类实例化的过程推迟 |
Prototype 原型模式 | 用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象 |
Singleton 单例模式 | 保证一个类只有一个实例,并提供一个访问它的全局访问点 |
结构型模式
设计模式名称 | 简要说明 | 速记关键字 |
Adapter 适配器模式 | 将一个类的接口转换成用户希望得到的另一种接口,它使原本不相容的接口得以协同工作 | 转换接口 |
Bridge 桥接模式 | 将类的抽象部分和它的实现部分分离开来,使它们独立地变化 | 继承树拆分 |
Composite 组合模式 | 将对象组合成树型结构以表述“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 | 树形目录结构 |
Decorator 装饰模式 | 动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活的替代,比派生一个子类更加灵活 | 附加职责 |
Facade 外观模式 | 定义一个高层接口,为子系统中的一组接口提供一个一致的外观,从而简化了该子系统的使用 | 对外统一接口 |
Flyweight 享元模式 | 提供支持大量细粒度对象共享的有效方法 | |
Proxy 代理模式 | 为其他对象提供一种代理以控制这个对象的访问 | |
行为型模式