Java接口编程参数类型选择

来源:互联网 发布:部落冲突骷髅法术 数据 编辑:程序博客网 时间:2024/06/05 15:23

问题描述:

编写接口的时候,参数的类型选择Java的基本类型和自带类型呢,还是选择自己编写的对象类型呢?

场景描述:

今天修改一个Dao层的接口,其中一个方法的参数改变了,比如本来是:void fun(int, int),修改后为:void fun(String, String),导致的结果是,其他调用这个接口的地方我需要一个一个的修改,这样的设计合理吗?

问题分析:

        这种情况,我们是选择基本类型(包括Java自带的对象类型),还是选择自己定义的对象类型呢?

从安全性分析,使用基本类型比较合理,原因很简单,能及时的发现哪些地方调用了这个方法。当修改了接口,我们最关心的就是调用接口的地方是否依然正确呢?如果不正确,MyEclipse很容易发现并提示我们进行修改。而如果是使用自己定义的对象类型,很容易出现的问题是,对象中的默写域我们根本就没有赋值,然后传递过来的数据其实很可能是对象默认的值,这样的问题隐蔽性很高,不易发现,但是当发生的时候,引起的问题却很严重。

        从复杂性分析,很明显,当然是使用自己定义的对象类型方便,代码修改的地方比较少。

        综合来说的话,自我感觉,小型系统可以使用自己定义的对象类型,因为系统本身不怎么复杂,修改维护起来容易;如果是大型的复杂系统,从稳定性和安全性考虑,还是选择基本类型比较合理。

        但是呢,如果是Service层,传递参数建议使用自定义对象类型,要不有些方法参数太多,而我们的Service层一般来说专门服务于某一对象模型,使用自定对象类型在逻辑上也很好理解。

结论:

Dao层和Service层处理方式不一样。

Dao层一般使用基本类型,但是小型系统,如果维护不是很复杂的话,可以使用对象类型,编码确实方便很多;Service 层一般使用对象作为参数传递,也有例外,比如通过用户ID获取用户信息。


0 0
原创粉丝点击