首先必须为对象定义一个边界, 包括: 空间边界, 时间边界
在边界内的, 对象间互相传递引用.
如果要跨越边界, 则必须进行数据拷贝.
数据对象: 纯粹以交互为目的.
特点:易复制, 可序列化, 结构简单, 可能有ID.
和它关联的对象也都是数据对象.
需要实现: Equals, HashCode, CompareTo, IComparable等方法或者接口.
拷贝:分3种,
第一种, 完全拷贝, 所有数据包括ID等都复制一份.主要用于在不同数据边界间传输时调用.
第二种, 部分拷贝(或者内容拷贝).主要用于2个不同数据对象之间的拷贝, ID等身份信息不拷贝.
第三种, 结构拷贝. 只拷贝内部对象的结构而不拷贝实际数据.
如何序列化一个复杂的数据对象(包含了若干其他类型的数据对象或者其他数据对象的集合):
1)先序列化拓扑结构(序列化后的结果隐含了顺序)
2)其次序列化每个结点