很多对象表示的是在生命周期中具有连续性和同一性的事物,尽管在生命周期中对象的属性可能发生改变。
这些对象主要不是由其属性来定义的。它们所代表的事物可以贯穿一段时间,常具有不同表现形式,但仍保持同一性。有时,即使属性不同,两个对象也要视为同一个事物。另一方面,即使属性都相同,一个对象也可能与另一个对象视为不同的事物。搞错同一性很可能会导致数据的损坏。
因此:
当一个对象由自身的同一性而不是属性与其他对象相区别时,在模型中应以同一性为主来定义该对象。使类的定义保持简单,将关注点放在生命周期的连续性和同一性上。
定义一种方法来区分不同的对象,这种方法与对象的表现形式或历史无关。警惕通过属性来匹配对象的需求。为产生唯一的对象标识符定义一个操作,这可以通过在对象中附上一个保证唯一性的符号来实现。这种标识方法可能来自外部,也可能是由系统创建的任意标识符,并作用于系统内部,但是这种方法必须与模型中判断同一性的方式相符。
模型必须定义“同一个事物”到底指什么。
【又名“引用对象”(Reference Objects)】