接口设计之误区

来源:互联网 发布:cm域名怎么样 编辑:程序博客网 时间:2024/05/10 13:29

 

非常感谢大家对接口的几篇文章的关注和支持。特别补充一段我理解的接口设计中的误区。
误区之一:采用对象式设计
OO思想在设计师人群里已经深入人心。往往一谈到设计,就会想起对象。他们对对象的抽提能力机会已经炉火纯青,驾轻就熟。
然而,也正是因为这点,所以才容易以面向对象的方法去思考接口设计。
对象的在业务领域中是一个立体的影像。对于立体的影像,很容易吸引大家的眼球。如果我们眼中看到的只是对象,那么很容易让我们忽略去尝试用不同的角度去看这个对象。而这些角度的成像就是接口啊。
UML中指导我们,使用查看名词的方式来寻找对象。接口并不是简单的和对象的对应。一个对象往往是很多接口的组合。在这一点上,很容易产生误区。
误区之二:引入派生的机制
这一点我在《接口是AS出来的》曾经做过详细描述。
派生这个在面向对象体系中的概念,很容易让我们使用到接口体系中。这个误区很容易其作用。
接口关注的职责,而不是实现。而派生很大程度上是从实现角度去看的。因为感觉实现一样,很容易产生从它派生的冲动。
这里是一个思想的根本不同所在。不是说派生不对,而是说如果你认同了接口体系,就不要思考派生!在接口体系中,接口之间的关系永远只有一个QueryInterface!所有的体系都是建立在此之上的。
误区之三:为了接口而接口
这种应用很常见。比如说,我们在dll里封装了一系列对象,想把他公布出来。显然不能用对象了,于是很自然的选择使用接口这种与实现无关的方式。
这种方式没有问题。但问题在于,在封装接口的过程中,往往没有设计,而是将原有的对象直接映射成接口!这一点和刚才讲的第一点有点类似,但这个时候,这种没有进行接口的设计的方式会更为彻底!
接口本身存在的意义就是将行为和实现分离。从这一点上看没有问题。我们只是在探讨接口设计领域的误区。在这个误区中,会让我们失去设计的方向,甚至是设计的动力。认为不需要设计就可以了。架构师往往会让程序员直接进行转换。其实究根到底,还是将对象很接口划上等号了。
原创粉丝点击