类具有私有数组/列表。它的封装只允许通过"AddElement“之类的方法进行编辑。
现在,另一个类需要有关该数组/列表的所有元素的信息。
传递数组/列表的引用将破坏封装。返回一个新的数组/列表,但是使用相同的对象,仍然允许对对象进行操作。创建一个深拷贝感觉有点过火了。有更好的办法吗?
举个例子:在游戏中,我有多个单位。要在地图上放置标记,渲染器需要单元的位置和单元类型。渲染器不能改变单位的各种属性。
我在C#做这件事。
发布于 2022-02-05 22:53:59
创建一个只公开所需信息的新方法。类似于:
public (Point Position, string UnitType) GetUnitInfo()
{
return _units.Select(u => (u.Position, u.UnitType));
}https://stackoverflow.com/questions/71000156
复制相似问题