使用集合C#

Dav*_*vid -1 c# collections

如果我有一个聚合对象,例如Order - > OrderLine,其中我的Order对象被识别为聚合根,因此要将OrderLine添加到订单中,我希望通过聚合根和其他方式,例如Order.AddOrderLine( OrderLine line).

Order对象显然暴露了OrderLines的集合,但是如何防止使用此集合的消费者直接添加OrderLines,我假设答案是使用Readonly集合?这是否会阻止消费者更改对象的状态,即集合中的OrderLines?

谢谢

n8w*_*wrl 5

将orderLines公开为IEnumerable <OrderLine>,并根据需要实现添加/删除方法.这样你的客户只能迭代集合,而不是通过你的聚合来操纵它.