浏览 3693 次
锁定老帖子 主题:小议方法参数的可见性
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-19
1:最大可见性的参数类型Object,这个类型可以允许传入任何类型的参数,一般都用于方法内部通过反射来调取参数属性及方法的。 2:次之可见性为Collection类型的,可以传入的对象很多都是一个集合,通过转型或者反射操作,原理和Object基本上差不多。 3:Interface操作。传入一个类型的接口,这样可以通过接口操作参数的各种方法。 4:具体类型。只能传入一种类型或者其子类。有些类似Interface(如果存在子类的话)。 这几种可见性,也要根据情况使用,要尽量在可预见的情况下,使用最小的可见范围。意思就是能使用多小范围就是用多小范围。当然了,自己会预见今后会扩展,就不能使用具体的类,需要使用Interface类型的,或者类似的(即父类)作为参数类型。 范围使用的比较大的话,那么不利于编译检查,也不是强类型语言的有点所在。试想所有的参数都是Object,那么将是多么可怕的事情。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-19
session .save(Object);
|
|
返回顶楼 | |
发表时间:2007-01-19
不知道意指什么?
比如这样,你需要保存一个User的时候,那么你的方法是 SaveUser(ParamType user) { doSomeThing(); ...... session .save(Object); } 那么你的ParamType类型是什么呢?User?Object? |
|
返回顶楼 | |
发表时间:2007-01-19
sinokaka 写道 不知道意指什么?
比如这样,你需要保存一个User的时候,那么你的方法是 SaveUser(ParamType user) { doSomeThing(); ...... session .save(Object); } 那么你的ParamType类型是什么呢?User?Object? 我想说的是用object 只见过这个方法 |
|
返回顶楼 | |
发表时间:2007-01-19
楼主混淆了可见性和类型接口的概念。
当然这里有一点相似,不过private,public这些是控制能否访问,而参数的"可见性"是控制的类型接口。 Object,Collection,等等,都是一个问题,应该尽量使用上层接口来使用对象,从而可以使用多形性保证程序的弹性。 例如对使用ArrayList类型的,是否可以上溯造型到List或者Collection来定义参数?不过要注意,有时候会失去方便性和一些特性,比如Collection已经不能像样List一样直接以序号来访问元素了。 |
|
返回顶楼 | |
发表时间:2007-01-21
引用 抛出异常的爱 3 天前 sinokaka 写道 不知道意指什么? 比如这样,你需要保存一个User的时候,那么你的方法是 SaveUser(ParamType user) { doSomeThing(); ...... session .save(Object); } 那么你的ParamType类型是什么呢?User?Object? 我想说的是用object 只见过这个方法 呵呵,这两天没上来,是我误解了:) |
|
返回顶楼 | |