1. 定义
接口隔离原则(Interface Segregation Principle, ISP)
接口隔离原则是面向对象设计中的五大原则(SOLID)之一,由Robert C. Martin提出。其核心思想是:
客户端不应该依赖它们不需要的接口。
换句话说,一个类不应该被迫实现它不需要的方法。接口应该尽量细化,每个接口只负责一个特定的功能,而不是将所有功能都集中在一个庞大的接口中。
2. 为什么要遵循接口隔离原则?
1. 减少耦合:细化的接口可以减少类之间的依赖,降低耦合度。
2. 提高可维护性:当接口职责单一,修改一个接口不会影响到其他不相关的类。
3. 增强可读性:细化的接口更容易理解和维护。
3. 违反接口隔离原则的例子
假设我们有一个IMachine接口,定义了打印机、扫描仪和传真机的功能:
class IMachine {
public:
virtual void print(const std::string& document) = 0;
virtual void scan(const std::string& document) = 0;
virtual void fax(const std::string& document)