此观点是曾经和许式伟共事的时候被他输入给我的;当年刚毕业;被他拉过去设计接口,他很耐心细致的分析了我的接口;
仔细分析一下,你会发现我们每天都在设计接口(许式伟称之为规格)
接口让我们这些programer分为两类人,一种人做设计(设计接口),一种人写代码(实现接口);我们每天都在围着接口转;
前面的文章中提到围棋,围棋中小方块和小方块衔接处用的则是我们所说的“接口”;
设计接口都是我们口中所说的牛人所干的活,所以有两个必须的因素:
1:丰富的经验
2:充足的需求分析
相比而言,2,更重要;
比如设计容器的接口:插入,删除,访问,这是不需要分析所必须要想到的接口,这则是用经验换来的接口设计思想;
比如我发现我们的容器是以个只读接口:那么此容器只需要:初始化、访问接口,并不需要删除,这是需求分析换来的接口设计思想;
好的接口设计有一些可以遵循的原则:
- 接口的自圆;我们设计一个vector有size接口,没有at(i)或者operator[],接口那么它将如何被使用???这便是没有自圆;自圆的接口才能让你的user无话可说;
- 沿用原有语义:如find,请不要自己搞一个chaxun出来;
- 简洁:这是我一直强调的
- 不会被误用:举个简单的例子