状态转移
0. 引言
昨天遇到一个问题,就是关于对象状态转移的问题,我姑且这样命名吧。简要描述一下就是:对于一个人,他有进食,帮助他人,恋爱等功能,但是这些功能是有先后顺序的,对于刚出生的人,他要先学会进食,然后随着他的成长,他逐渐学会帮助他人,在这个过程中他学会了爱与被爱,当他遇到一个合适的女孩,他就坠入了爱河。整个过程反映到程序上就是,必须按照下面的顺序调用方法:
man=Human.new
man.feed
man.fall_in_love # Error
man.help_people
man.fall_in_love
如果你调用某个功能时没有完成前面的事情,就像上面的例子这样,一个人尚未学会帮助他人的人,我们是不希望他去恋爱的,这样一个不懂得互助互爱的人怎么可能珍惜自己的爱人呢?
所以,对象状态转移就是:某个对象随着状态转移获得调用新方法的能力或权限,未达到某个状态前无法调用该状态下的方法。
Read on →