美文网首页
面向对象的设计原则-ISP

面向对象的设计原则-ISP

作者: Wu杰语 | 来源:发表于2020-11-20 23:37 被阅读0次

    Interface Segregation Principle,接口隔离原则,客户端不应当被强迫依赖它不需要的接口。

    接口隔离原则是从接口角度考虑的设计原则,让一簇接口职责单一,可以通过调用者的角度来判断,如果调用者只使用了一部分接口,那么就不符合接口单一原则。

    下面给出一个例子:

    interface ReaderWriter {
      char read();
      void write(char c);
    }
    
    class PaperReaderWriter implement ReaderWriter {
      ....
    }
    
    class ComputerReaderWriter implement ReaderWriter{
      ...
    }
    
    int main() {
      new PaperReaderWriter().read();
      new ComputerReaderWriter().read();
    }
    
    

    这个接口,同时定义了read和write,实际上user最后只使用了read方法,但是每个类都要实现read和write,并且从接口的角度,接口定义也不单一。应该这样定义:

      interface reader {
        char read();
      }
    
      interface writer {
        void write(char c);
      }
    

    拆分开以后,接口职责更加单一,类实现也更加灵活。

    小结

    接口单一原则和单一职责原则两个原则针对的视角是不一样的,接口单一原则是针对接口设计而言的,而单一职责原则是针对类、函数、模块而言的,充分利用好这两个基本原则,使代码简洁清晰。

    相关文章

      网友评论

          本文标题:面向对象的设计原则-ISP

          本文链接:https://www.haomeiwen.com/subject/ggzjiktx.html