5. 模式演变的规则

  在静止状态下的一个类格必须保持所有的不变性。对于模式的某些改变,存在多种方法可保证不变性。例如,假如有一个名字在从超级类继承下来的实例变量中有冲突,根据全继承的不变性要求,至少要继承实例变量中的一个;但不能说是哪一个。为了保证得到一种优化的选择,有四个基本的规则:

  (1) 默认的冲突解决规则。
允许选择单继承,即用一种先事确定的方法满足不同名字和不同特性的不变性。
 
  (2) 特性传播规则。一旦在某个类中定义了或者继承了实例变量,该实例变量的特性就可以用各种方法进行修改,如改变它的名字、值域或默认值等。进而,属于某个类的方法也可以修改它的名字和代码。特性传播规则对实例变量和方法特性的所有修改提供了保障。

  (3) DAG操纵规则。控制从类格中增加或删除结点和边。当对一个类格增加或删除边和结点时,这些规则确保避免错误的改变。