搬砖方法论:Interface Segregation Principle(接口隔离原则、ISP原则)

什么是接口

MSDN文档中的描述外,对于实例化此接口的类来讲,这个接口属于这个类的抽象,或者说一部分功能的抽象,但是对于接口的使用方来讲,还会新增一条含义,那就是依赖的增加,增加此抽象对应的依赖。

和抽象(abstract)的关系

对于和抽象(abstract)的关系,可以用一句话说明:抽象是含有,接口是能够。抽象的关注点是通用性,共同含有,都具备这类的表述更符合抽象的特质。
而接口往往是对其功能的归纳总结而得出的结论,例如List 有继承IList 和 IEnumerable两接口,也就证明List含有这两个特质。

为什么要隔离

减少无用的依赖需求,使模块的设计精简化这是我们的目的。而接口的隔离正是减少无用依赖耦合的有效手段。例如:IOpen和IClose接口,如果两接口不进行隔离,整合在一个接口IOpenAndIClose中,对于仅仅需要IOpen依赖的使用方来讲,这本身就是一种负担,而且如果软件设计中依赖了它并不需要的东西,很大几率会带来意料之外的麻烦。

注:上面的Open和Close在实际使用中往往是成对出现的,为了示例说明才进行拆分。


更多文章详见主页:www.aihailan.com

发表评论