OOP(面向对象编程)指的是在面向对象编程(Object-Oriented Programming)中应该遵循的设计原则,包括了基本概念(EIPA)以及更多的设计原则(如SOLID原则)。主要的OOP原则包括:
基本概念
-
封装 (Encapsulation)
- 将数据和操作数据的方法捆绑在一起
- 隐藏对象的内部状态,只通过公共接口访问
- 例如:将类的成员变量设为私有,只通过公共方法访问
-
继承 (Inheritance)
- 允许一个类(子类)基于另一个类(父类)构建
- 子类自动获得父类的特性,并可以添加自己特有的功能
- 促进代码重用和层次结构
-
多态 (Polymorphism)
- 允许不同类的对象对相同消息做出不同响应
- 包括:
- 运行时多态(通过方法重写)
- 编译时多态(通过方法重载)
- 增强了代码的灵活性和可扩展性
-
抽象 (Abstraction)
- 关注对象的关键特性而非细节
- 通过抽象类和接口实现
- 定义了对象的行为契约而不关心实现细节
SOLID原则(高级OOP原则)
-
单一职责原则 (Single Responsibility Principle)
- 一个类应该只有一个改变的理由(即一个职责)
- 提高内聚性,降低耦合度
-
开放封闭原则 (Open/Closed Principle)
- 软件实体应该对扩展开放,对修改关闭
- 通过抽象和多态实现功能扩展而不修改现有代码
-
里氏替换原则 (Liskov Substitution Principle)
- 子类对象应该能够替换父类对象使用,而不改变程序正确性
- 确保继承关系合理
-
接口隔离原则 (Interface Segregation Principle)
- 客户端不应该依赖它不使用的接口
- 推荐使用多个专用接口而非一个总接口
-
依赖倒置原则 (Dependency Inversion Principle)
- 高层模块不应依赖低层模块,两者都应依赖于抽象
- 抽象不应依赖细节,细节应依赖抽象