具有状态的对象

  传统的java web编程里面,很少有具有状态的对象需要我们自己设计,一般都是Controller,Service,Dao三层代码,而这三类对象基本上没有状态,所以,很多工作多年的Java程序员只会Java web,而基本的面相对象知识确实非常匮乏,从定义一个对象开始,就能看出来一个人的水平。

  很多工作多年的人都喜欢静态类,原因很简单,思维里面抽象不出来一个东西描述这个动作,这种方式,等等, 其实是头脑太懒惰,没有经过面相对象的思维训练。

  对象其实是封装本身状态的,而状态是会在运行期变化的,所以,提供了一些方法来控制这些状态,本身的状态却不轻易示人。

  什么东西是需要状态的呢?

    1.当一次操作无法完成,那么需要记录进度。commons里面的IOUtils启发想到,流都是具有状态的,记录读到哪里,还有多少没读等等这样的状态。

    2.因为对象在不同的状态下有不同的行为。比如apache tomcat的catalina对象。

  很多时候,具有状态的对象非常好用,对外提供一些方法,就能查询这个对象当前所处的状态,对外提供一些方法,也能够改变这个对象当前所处的状态。

  对象的属性其实也分好多种。

  1.能够改变的状态属性

  2.不能够改变的依赖对象

  3.被代理对象。

  其实,一般,对象的内部属性,内部依赖对象都很少发生变化,只有很少的情况下才需要改变。

猜你喜欢

转载自www.cnblogs.com/weiguangyue/p/9261116.html