面向对象对象的状态和行为如何获得的问题
在现实生活我们的对象,状态是多变的,而行为也是可以在后天养成的。比如人出生后状态会变化,行为随着时间和学习和环境的变化而变化。程序里面的对象也具有这样的特征。
只不过,面向对象语言不同的实现不同而形式不一样,比如静态语言就是用类型这个事物来使得对象具有某种属性,在实例化以后可以通过改变属性的值来改变对象的状态。而行为的动态变化特征对于使用类型模板技术的静态语言来讲,使用继承不能获得,因为继承还是一种静态形式,这个时候需要使用组合技术来实现。 而动态语言不是使用类型技术来使得对象具有状态和行为,对象就是对象,你要添加什么状态,什么行为随便你。当然为了方便也可以使用类型模板技术以外的手段来实现,比如javascript中的prototype技术。
有了对象的结构包括属性和行为的这种理解后,那么后面的问题就是这个分析和设计现实问题的解决方案。