如何设计接口?
要求:
1、具备很强封装性
2、高内聚、低耦合与依赖
要完全达到这两个要求几乎不可能。但是在鱼与熊掌不可兼得的前提下,我选择2。因为从经验看维护任务往往是开发工作量的数倍。
为了获得高内聚、低耦合特性,很自然的想到一句话:“别和陌生人说话”。因为严格的讲,你跟谁“说话”,就代表你跟谁发生耦合了。
具体到开发工作中,如果对象O存在一个方法M,为了符合“别和陌生人说话”,方法M应该只引用下面几种方法:
- 对象M的其他方法
- M的参数
- 在M方法中被实例化的对象
- O所包含的子对象
- 任何O可以访问的全局变量
你设计的接口能够满足以上条件吗?否则,你应该做点什么。