面向对象编程,简单理解就是尽可能地面向接口编程或者是面向抽象编程而不是面向具体实现编程。
最重要也是最核心的理念是高内聚、松耦合,这也是面向对象编程所要达到的目标,高内聚指的是类内部元素具有相同特点的相似程度,高内聚提供了更好的可靠性和可读性,低耦合指的是类与类之间的依赖程度,低耦合提供了更好的可扩展性和可复用性。
高内聚和低耦合是设计原则的基础,设计原则是设计模式的基础,使用面向对象编程思想去实践好的做法是学习好设计模式并恰当地运用。
高内聚和低耦合=》设计原则=》设计模式=》面向对象编程。
在面向对象编程里,是将一个对象作为最小的处理单元,封装字段、属性、方法、构造函数、析构函数等,包括事件、委托、索引器。
面向对象编程重要知识点:接口、泛型、委托。
面向对象编程要点:
1、封装
隐藏细节以注重安全;
2、继承
代码复用以修改父类;
3、多态
在父类中声明对象、在子类中具体实现、在运行时动态选择),尽量面向高层、面向结构、面向约束、面向规范,尽量不要面向具体的实现,更关注模糊、高层、架构。
4、抽象
就是自下而上地把子类相同的特征抽象到高层.
抽象是实现代码重构的第一步,也是代码重构最核心的基础。这是面向对象最重要的知识点、代码核心,抽取子类相同的特征到高层,关注高层,封装、继承、多态都源自于抽象。
抽象水平的高低是一个程序员水平高低的重要体现。
设计模式遵循设计原则
LSP:里氏替换原则
父类引用指向子类替换,如果a是b的子类,在引用上,b都可以替换为a。
LOD:迪米特法则
朋友最少原则,就是一个对象对其他对象尽可能地有最少的了解,这样可以尽可能地降低耦合。
OCP:开放封闭原则
尽量通过增加代码的方式修改类的功能。
对外修改开放、对内修改封闭,尽量通过增加代码的方式来修改类的功能。
DIP:依赖倒置原则
一个类尽量依赖于接口,一个类尽量依赖高端类而不是低端子类,多态的核心思想。
SRP:单一职责原则
写一个类的时候,功能越少越好。
ISP:接口隔离原则
接口的方法尽量单一,类与类的依赖应该建立在最小的接口上。
CARP:合成聚合复用原则
尽可能地使用对象的组合而不是继承来实现复用。
类与类之间的关系
① X is Y
X继承自Y,即:X extends Y。
② X has Y
X里面包涵了Y,是关联关系:
class X {
Y y1;
}
③ X like Y
X实现了Y,即:X implements Y。