什么是好的接口?我们总是在用一些模式或者理论来定位它,然而更多的时候,我们应该采取换位思考的模式来定义接口,也就是说你站在用你的接口的那些人的角度去看问题,或者你来使用你的接口,凭此它的可靠性,扩展性和可用性,如果连你都觉得接口不够清晰,你又如何说服别人用呢?举个例子
情景:Web上要显示某个类别下所有的用户列表。用户切换不同的类别(以下拉框的形式),界面将显示此类别下的所有用户信息(以列表的形式)
接口:List<User> getUserList(List<Type> type) throws Exception
问题:设计人员根本没有考虑使用者的感受,如果你来调用接口,你更希望传递的是某一个Type,而不是列表!当然从代码的角度将一个对象转换成为List是非常简单的事情(Arrays.asList), jdk就有现成的,可是你怎么看都用着非常的别扭,似乎这个方法根本就不是为你准备的,而且可以想象你很担心返回的结果。从实现者的角度,他也会很难受,因为他需要些更多的代码去排除参数的合法与合理性,这是得不偿失呀!
解决:很简单,拆成两个方法
List<User> getUserList(Type type) throws Exception;
List<User> getUserList<List<Type> type> throws Exception;
这样是不是看起来舒服多了?既考虑到了不用的用户,接口也变得更具有亲和力,你说呢?
分享到:
相关推荐
换位思考的游戏.doc
《换位思考》教案.pdf
主题班会-换位思考,律己宽人[宣贯].ppt
医院开展“假如我是一名患者”换位思考大讨论心得体会参考.doc
换位思考,让教学设计更贴近学生
换位思考与人为善教学设计八年级政治教案.doc
换位思考高二作文.docx
换位思考追求双赢.pptx
政治:第九课 心有他人天地宽 2、换位思考,与人为善(人教版).ppt
是一个关于Java课程设计的一个游戏,这是一个动物换位的游戏,是在前人的基础上改进的。不好请见谅!
八年级政治换位思考与人为善教案1.doc
如何通过换位思考追求双赢.ppt
换位思考 从小事做起.doc
换位思考、律己宽人.doc
八年级政治换位思考与人为善.ppt
初二政治上学期换位思考与人为善.ppt
小学班会换位思考,学会宽容.doc
服从大局,换位思考,变中求进