`
killvin
  • 浏览: 45835 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

接口设计者应该换位思考一

阅读更多

什么是好的接口?我们总是在用一些模式或者理论来定位它,然而更多的时候,我们应该采取换位思考的模式来定义接口,也就是说你站在用你的接口的那些人的角度去看问题,或者你来使用你的接口,凭此它的可靠性,扩展性和可用性,如果连你都觉得接口不够清晰,你又如何说服别人用呢?举个例子

 

情景: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;

 

这样是不是看起来舒服多了?既考虑到了不用的用户,接口也变得更具有亲和力,你说呢?

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics