我有一个程序将它的信息存储在XML文件中。读入该文件并创建相应的对象模型。该对象模型具有树形层次结构。我们将称之为BigHierarchy的对象类型。添加到我的程序中的导入功能会破坏OOP封装。我如何恢复封装?
现在,我的程序有一个功能,允许用户导入另一个文件。所以,当他选择他希望导入的文件时,我在该文件中读取并构造另一个BigHierarchy类型的对象来表示导入文件。所以现在我有了原始的BigHierarchy对象和我需要合并的新对象。由于它是一个层次结构,因此某些数据是私有的,无法访问。
如果我无法访问私有数据,如何合并导入对象与原始对象?我应该使用什么技术?叶子节点是否应该与上层的朋友相处,这样我就能从上面看到完整的知名度?我是否应该为所有叶子和超载加运算符添加重载,以便我可以合并所有内容或者应该在每个级别中复制所有私有数据的成员函数。每个选项似乎都很麻烦。我如何以最好的方式解决这个问题?
这两个对象都是BigHierarchy类的,所以你应该访问私有数据。我在这里错过了什么吗? – Naveen 2011-01-31 09:13:51
BigHierarchy的私人成员拥有我无权访问的私人成员。 – hd112 2011-01-31 09:21:02