接口
·实例接口
在Java中声明一个类, 然后用new关键字产生一个实例, 它是对一个类型的事物的描述, 这是一种接口
·类接口
Java中经常使用的interface关键字定义的接口
隔离
clients should not be forced to depend upon interfaces that they don't use
客户端需要什么接口就提供什么接口, 把不需要的接口剔除掉, 那就需要对接口进行细化, 保证其纯洁性
the dependence of one class to another one should depend on the smallest possible interface
最小的接口, 也是要求接口细化, 接口纯洁
隔离原则是对接口进行规范约束, 其包含以下4层含义:
● 接口要尽量小
这是接口隔离原则的核心定义, 不出现臃肿的接口, 但是“小”是有限度的。
不能违背单一职责原则。根据接口隔离原则拆分接口时, 首先必须满足单一职责原则。
● 接口要高内聚
高内聚就是提高接口、 类、 模块的处理能力, 减少对外的交互。
具体到接口隔离原则就是, 要求在接口中尽量少公布public方法, 接口是对外的承诺, 承诺越少对系统的开发越有利, 变更的风险也就越少, 同时也有利于降低成本。
● 定制服务
单独为一个个体提供优良的服务。 我们在做系统设计时也需要考虑对系统之间或模块之间的接口采用定制服务
● 接口设计是有限度的
接口的设计粒度越小, 系统越灵活,但是, 灵活的同时也带来了结构
的复杂化, 开发难度增加, 可维护性降低, 这不是一个项目或产品所期望看到的, 所以接口
设计一定要注意适度, 这个“度”如何来判断呢? 根据经验和常识判断, 没有一个固化或可测
量的标准。
实践
● 一个接口只服务于一个子模块或业务逻辑;
● 通过业务逻辑压缩接口中的public方法, 接口时常去回顾, 尽量让接口达到“满身筋骨
肉”, 而不是“肥嘟嘟”的一大堆方法;
● 已经被污染了的接口, 尽量去修改, 若变更的风险较大, 则采用适配器模式进行转化
处理;
● 了解环境, 拒绝盲从。 每个项目或产品都有特定的环境因素, 别看到大师是这样做的
你就照抄。 千万别, 环境不同, 接口拆分的标准就不同。 深入了解业务逻辑, 最好的接口设
计就出自你的手中!