接口分为两种:
1、实例接口,在Java中声明一个类,然后用new关键字产生一个实例,它是对一个类型的事物的描述,这就是接口。比如你定义Person这个类,然后使用Person zhangSan=new Person()产生了一个实例,这个实例要遵从的标准就是Person这个类,Person类就是zhangSan的接口。
2、类接口,Java中经常使用的interface关键字定义的接口。
隔离有两种定义:
1、客户端不应该依赖它不需要的接口。
2、类间的依赖关系应该建立在最小的接口上。
接口隔离原则是对接口进行规范约束:
1、接口要尽量小;
2、接口要高内聚;高内聚就是提高接口、类、模块的处理能力,减少对外的交互。具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺越少对系统的开发越有利,变更的风险也就越少,同时也有利于降低成本。
3、定制服务;一个系统或系统内的模块之间必然会有耦合,有耦合就要有相互访问 的接口(并不一定就是Java中定义的Interface,也可能是一个类或单纯的数据交换),我们设计时就需要为各个访问者(即客户端)定制服务 ,什么是定制服务?定制服务就是单独为一个个体提供优良的服务。我们在做系统设计时也需要考虑对系统之间或模块之间的接口采用定制服务。采用定制服务就必然有一个要求:只提供访问者需要的方法。
4、接口设计是有限度的;接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也 带来了结构的复杂化,开发难度增加,可维护性降低,这不是一个项目或产品所期望看到的,所以接口设计一定要注意适度,这个“度”如何来判断呢,根据经验和常识判断,没有一个固化或可测量的标准。
接口隔离原则是对接口的定义,同时也是对类的定义,接口和类尽量使用原子接口或原子类来组装。这个原子怎么划分是设计模式中的一个难题,在实践中可以根据以下几个规则来衡量:
1、一个接口只服务于一个模块或业务逻辑;
2、通过业务逻辑压缩接口中的public方法,接口时常去回顾,尽量让接口达到“满身筋骨肉”,而不是“肥嘟嘟”的一大堆方法;
3、已经被污染了的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理;
4、了解环境,拒绝盲从。每个项目或产品都有特定的环境因素。环境不同,接口拆分的标准就不同。
本文由Jessie原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址