32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
### 三大特性
|
|
1. 封装
|
|
把数据和操作数据的方法放在一起,并隐藏实现细节,只对外暴露合适的接口。
|
|
2. [[继承]]
|
|
在已有类型的基础上复用和扩展功能,表达清晰的 `is-a` 关系。
|
|
3. [[多态vob|多态]]
|
|
同一个调用入口,在不同对象上表现出不同实现。
|
|
|
|
补充:
|
|
- 三大特性是面向对象里最常见的基础概念。
|
|
- 实际写代码时,通常是先做好封装,再视情况决定要不要用继承和多态。
|
|
|
|
#### 七大原则
|
|
1. 开闭原则
|
|
对扩展开放,对修改关闭。
|
|
2. 依赖倒转原则
|
|
高层模块不依赖低层细节,双方都依赖抽象。
|
|
3. [[里氏替换原则]]
|
|
子类对象应该能替换父类对象而不破坏程序正确性。
|
|
4. 单一职责原则
|
|
一个类最好只负责一类事情。
|
|
5. 接口隔离原则
|
|
接口要小而专,不要逼调用方依赖自己用不到的成员。
|
|
6. 合成复用原则
|
|
优先使用组合,而不是为了复用就滥用继承。
|
|
7. 迪米特法则
|
|
对象之间尽量少了解内部细节,降低耦合。
|
|
|
|
补充:
|
|
- 这些原则是设计经验,不是语法规则。
|
|
- 新手阶段先理解“为什么这么设计会更好维护”,比死记名字更重要。
|