1.对象
- 封装了代码和数据
- 提供一系列可用接口
- 拥有某种功能的抽象
2.设计原则
1.单一职责原则 (SRP)
一个类应该只有一个引起变化的原因,即一个类只负责一项职责。
2.开闭原则 (OCP)
软件实体(类、模块、函数等)应该对扩展是开放的,对修改是封闭的。可以通过添加新的代码来扩展系统的功能,而不是修改已有的代码。
3.里氏替换原则 ( LSP)
子类型必须能够替换其基类型而不影响程序的正确性。在使用基类的地方,能够使用其任何派生类而不产生错误。
4.依赖倒置原则 (DIP)
高层模块不应该依赖于低层模块,两者都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
人话:高层模块是不会变化的,底层模块是会变化的,抽象是不变的,具体实现是变化的。
5.接口隔离原则 (ISP)
不应该强迫一个类去实现它不需要的接口。一个类只应该实现它需要的方法,不需要的方法应该由其他接口实现。
6.聚合复用原则 ( CARP)
首选使用组合或聚合而不是继承来实现代码复用。这有助于减少类之间的耦合性,使系统更加灵活和易于维护。
7.迪米特法则 ( LoD)
一个对象应该对其他对象有最少的了解,不与太多对象直接交互。也被称为"最少知识原则"。
3.扩展
在李建忠C++设计模式的视频课程里有一个个人感觉特别重要的原则 面向接口编程,而不是面向实现编程 。