主线
3大特性 - 面向对象三大特性
- 封装:隐藏内部实现
- 继承:复用现在代码
- 多态:改写对象行为
5大原则 - SOLID原则
单一责任原则
- 定义:一个类只应承担一种责任
- 让一个类只做一件事。如果需要承担更多的工作,那么分解这个类。
开放封闭原则
- 定义:实体应该对拓展是开放的,对修改是封闭的
- 类应该无需修改类本身但却容易拓展
- 例子:计算不同形状图形的面积
里氏替换原则
- 定义:一个对象在其出现的任何地方,都可以用子类实例做替换
- 当子类可以在任意地方替换基类且软件功能不受影响时,不会导致程序的错误
- 例子:多个数据源(SQL与NoSql)获取用户信息
接口分离原则
- 定义:多个专门接口比使用单一的总体接口要好
- 客户不应被强迫依赖它不使用的方法。即,一个类实现的接口中,包含了它不需要的方法。将接口拆分成更小和更具体的接口,有助于解藕,从而更容易重构与更改。
- 例子:计算面积和计算体积的接口,立方体适用这两个接口,图形使用面积接口
一来倒置原则
-
定义:
- 高层次的模块不应依赖低层次的模块,他们都应该依赖于抽象。
- 抽象不应依赖于具体实现,具体实现应依赖抽象。
-
依赖倒置是实现开闭原则的方法
-
例子
-
拓展:IOC 和 DI
6种关系 - 类的关系
23种模式 - GOF核心设计模式
什么是设计模式
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。
一个模式的四要素
- 模式名称:帮助记忆的名字
- 问题:描述应该在何时使用模式,要解决什么问题
- 解决方案:如何去做,设计有哪些组成,相互关系与各自职责
- 效果:用了这个设计模式之后有啥效果