Sometimes your domain objects have one-to-many or
many-to-many relationships with other objects. For instance, your Customers
might have collections of Orders associated with them. The simplest way to
model this is to expose a List<Order> field or property off of your
Customer class. Unfortunately, this has a number of negative consequences
because of how it breaks encapsulation. Fortunately, there are some effective
ways to shield yourself from these issues while still exposing the collection's
data to your class's clients.