中国石油大学网页设计与网站建设,wordpress高级自定义字段怎么显示,网站建设用到什么软件,安卓android软件系列文章目录
C高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C并发线程编程 LSP#xff1a;接口隔离原则 系列文章目录1、接口隔离原则的定义和解读2、案例解读3、如何判断一个接口是否符合接口隔离原则#xff1f;小结 1、接口隔离原则的定义和…系列文章目录
C高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C并发线程编程 LSP接口隔离原则 系列文章目录1、接口隔离原则的定义和解读2、案例解读3、如何判断一个接口是否符合接口隔离原则小结 1、接口隔离原则的定义和解读
Robert Martin在SOLID原则中是这样定义接口隔离原则(Interface Segregation Principle, ISP)的客户端不应该被强迫依赖它不需要的接口。其中含义的客户端可以被理解为接口的调用者和使用者。 实际上接口这个词汇可以应用在软件开发的很多场合中。接口既可以看作一组抽象的约定又可以具体指系统之间相互调用的API还可以特指面向对象编程语言中的接口等。对于接口隔离原则中的接口。
2、案例解读 图1接口隔离原则 图1所描绘的应用中由多个用户操作OPS类。现在,假设User1只需要使用op1User2只需要使用op2User3只需要使用op3。
在这种情况下那么很明显User1虽然不需要调用op2、op3但在源代码层次上也与它们形成了依赖关系。这种依赖意味着我们对OPS代码中op2所做的任何修改即使不会影响到User1的功能也会导致他需要被重新编译和部署。
这个问题可以通过将不同的操作隔离成接口来解决具体实现如图2所示。
那么现在User1的源代码会依赖U1Ops和op1但不会依赖于OPS。这样一来我们之后对OPS做的修改只要不影响到User1的功能就不需要重新编译和部署。
任何层次的软件设计如果依赖了它并不需要的东西就会带来意料之外的麻烦。 图2接口隔离 3、如何判断一个接口是否符合接口隔离原则
判断一个接口是否符合接口隔离原则可以从以下几个方面考虑
接口的功能是否单一。接口应该只包含必需的方法不应该包含无用或冗余的方法。接口的职责是否清晰。接口应该只包含与其职责相关的方法而与其职责无关的方法应该放到其他接口中。接口的依赖是否合理。一个接口不应该依赖于它不需要的方法它的依赖应该被限制在最小范围内。接口的稳定性是否高。如果一个接口经常发生变化那么其它使用该接口的类也需要随之改变这将增加系统的维护成本。
总的来说接口隔离原则的核心思想是“高内聚、低耦合”即一个接口应该具有高内聚性同时与其它接口的耦合应该尽可能地减少。
小结
依赖反转原则和接口隔离原则区别
依赖反转原则是指高层模块不应该依赖于底层模块二者都应该依赖于抽象。抽象不应该依赖于具体实现而具体实现应该依赖于抽象。简单来说就是要依赖于抽象而不是具体实现。
接口隔离原则是指一个类对另一个类的依赖应该建立在最小的接口上。这个原则的目的是避免一个类依赖另一个类的不需要的接口从而减少耦合性提高灵活性和可维护性。
这两个原则有相似之处都是通过减少类之间的依赖关系从而提高软件的复杂性和可维护性。依赖倒置原则关注的是高层模块和底层模块之间的依赖关系而接口隔离原则则关注的是类与类之间的依赖关系。两个原则相互补充都是软件设计中非常重要的原则。