java bean

  在这里我想聊一个java最基础的java bean的理解。
  作为一个java程序员,java bean有get set仿佛是天经地义的。我也是这样认为的。然而经过高人提点,我们仿佛忽略了一个问题,我们一直在使用orm框架,其实set get是orm框架所必须的。其实我们可以看jdk源码,我们能看到jdk的java bean里全有get set吗?明显不是,反而用的多的也是被我们经常忽略的构造函数。
  java bean应该有行为吗?答案是肯定的,java是面向对象的语言,java bean的行为正是其面向对象语言的最主要的特征。好的,让我们这里回想下,我们写的程序。我们的系统一般会分为以下三层,在这里我们把每一个层级对应的java bean都以不同对的名字分类:

  1. 表现层-VO
  2. 业务层-BO
  3. 持久层-DO

持久层就是对应的数据库的层级(Dao),里面会有对应数据库的DO。可以想想,我们一般是不会在DO中声明方法的。但是在业务层和表现层中,其实是有一些业务行为的,比如说数据库中存的是以“分”为单位的数字,但是表现成要以元为显示。我猜测啊,大多数程序员会和我一样,把这个方法写一个util或者private方法调用转换。但是我们如果好好思考下,这个行为其实是java bean本身的,放在java bean中更合适。
  在这里我只是提出,我们要考虑行为或者逻辑本身应该属于谁,并不是一棒打死的认为逻辑都应该放在java bean当中。思考最重要。

如果感到快乐,你就拍拍手。