2.4 动态语义 21
的动态语义(dynamic semantics)。动态语义允许对象对其生命期的两个不同时候发来的相同
消息作出不同的回应。例如,看这个抽象例子:
Method junk for the class X
if (local state #1) then
F do something
else if (local state #2) then
do something different
End Method
对象的动态语义是任何面向对象设计的有机组成部分。一般而言,任何具有有意义动态语
义的类都应当用一个状态转换图(参见图 2.8)来把这些动态语义归档。具有有意义动态语义
的类是指具有有限状态和精确定义的状态变换的类。图 2.9 所示的状态转换图详细描述了某个
操作系统中进程的动态语义。它表明,进程的状态可以是就绪、当前进程、阻塞、睡眠和退出。
此外,进程创建时只能是就绪状态,它们只能在退出状态被销毁,它们只能在当前进程状态时
图 2.8 状态转换图表示法
图 2.9 某种操作系统中过程的状态转换