状态
状态指事物基于所处的状况、形态表现出的不同的行为特性。状态模式(State)构架出一套完备的事物内部状态转换机制,并将内部状态包裹起来且对外部不可见,使其行为能随其状态的改变而改变,同时简化了事物的复杂的状态变化逻辑。
1 事物的状态
面向对象最基本的特性——“封装”是对现实世界中事物的模拟,类封装了属性与方法,其被实例化后的对象属性则体现出某种状态,以至调用其方法时会展现出某种相应的行为,这一切都与状态脱不了干系。以我们赖以生存的水举例,它有3种形态,0℃以下的固态冰、常温下的液态水,以及100℃以上的气态水蒸气。我们可以总结出,当温度变化导致水的状态发生变化时,它就会有不同的行为,如冰会滚动、水会流动、水蒸气则会漂浮。
事物状态的变化驱动机制是非常普遍的存在。人类更是无法逾越自然界的常规,人类的情感状态更加复杂多变,不同的心态会表现出不同的行为,如高兴时会欢笑,悲伤时会哭泣,愤怒时会责备,兴奋时会手舞足蹈……喜怒哀乐,五味杂陈。
2 简单的二元态
世界是复杂的,事物的状态是多样的,但“万物之始,大道至简”,我们就从最简单的“二元态”实例出发。如果你此刻在室内,你会发现有电灯,它有两种状态:通电与断电,分别对应灯亮与灯灭