论坛首页 入门技术论坛

java类的设计技巧

浏览 9827 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-09-28  
final static 写在最上面是checkStykle规范吧啊。。这些都好正常的,没必要说吧?
0 请登录后投票
   发表时间:2010-09-28  
Freedom!
0 请登录后投票
   发表时间:2010-09-28  
肤浅的技巧
0 请登录后投票
   发表时间:2010-09-28  
说的很基本,不错
0 请登录后投票
   发表时间:2010-09-28  
play framework框架给点文档,其模型的部分属性就直接使用的public修饰。
0 请登录后投票
   发表时间:2010-09-28  
asme2u 写道
freish 写道
1)一定将数据设计为私有。


这个肯定是不合理的

如果处处都合理的话,java设计之初就不会让public修饰类的属性了

同意,就我自己来说,对于私有的内部类,我基本使用public字段代替私有字段加getter和setter


将get和set去掉,用public变量取代,实际上是有一个问题存在的。问题不是存在于开发过程中,而是程序的适应性。考虑一下,如果你写的组件有100个子程序调用,使用同一个变量。
例如:
你的Student类有一个String studentCardID;
getStudentCardID方法有100个地方被调用,而且程序已经上线n久了。
现在学校规定,在显示的studentCardID前必须加上"#"标记。你需要做的其实很简单,修改一个方法。
public String getStudentCardID(){
   return "#"+studentCardID;
}
这样就会省去修改整个系统的风险。而如果不用get方法来实现,则很可能面临修改整个系统。

当然,上面的例子对于程序员来说不是很爽,谁也不希望get方法里还要对数据处理,这样的代码不严谨。但在现实世界里,成本往往说了算。

0 请登录后投票
   发表时间:2010-09-28  
     太多的 “一定”!
     实际作用:一般!
      鉴定完毕! 欢迎拍砖!
1 请登录后投票
   发表时间:2010-09-28  
youanyyou 写道
2)一定要对数据初始化。 
java不对局部变量进行初始化,但是会对对象的实例域进行初始化。最好不要依赖于系统的默认值,而是应该显式地初始化所有的数据,具体的初始化方式可以是提供默认值,也可以是在所有构造器中设置默认值。
 


这一点个人认为没有必要。并且就我接触的,包括大部分开源项目源码里和呆过的大部分公司的项目里,都没有对实例域进行没必要的初始化。 尤其在构造器里去写十几个变量等于null或0或false的,看起来都头晕。 局部变量能不初始化就不初始化,比如:

User user = null; // or new User();

if (a == b) {
user = userDao.getUser();
} else {
user = sessionUtil.getUser();
}
 
看到太多的类似代码, IDE(intellij idea)马上报黄色警告。

0 请登录后投票
   发表时间:2010-09-28  
think in java or eff java 这两本其中一本书中的。。
0 请登录后投票
   发表时间:2010-09-28  
你这是在抄书吧?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics