VB 2008 .NET 3.5Можно ли ограничить экземпляр объекта только одним другим (родительским) объектом в VB.NET?
Предположим, у нас есть два класса: Order и OrderItem, которые представляют собой некоторую систему онлайн-заказа. OrderItem представляет одну позицию в заказе. Один заказ может содержать несколько OrderItems в виде списка (OrderItem).
Public Class Order
Public Property MyOrderItems() as List(of OrderItem)
End Property
End Class
Имеет смысл, что OrderItem не должен существовать без Ордера. Другими словами, класс OrderItem не может быть создан сам по себе, он должен зависеть от класса Order, чтобы его содержать и создавать. Однако OrderItem должен быть общедоступным в области видимости, чтобы свойства были доступны другим объектам. Таким образом, требования к OrderItem:
Может быть создан только классом Order.
Должно быть общедоступным, чтобы любой другой объект мог получить доступ к его свойствам/методам через объект Order. например Order.OrderItem (0) .ProductID.
OrderItem должен быть передан другим субподряду/функциям, которые будут работать на нем.
Как достичь этих целей? Есть ли лучший подход?
Речь идет о самом изящном решении, которое я видел. Мне жаль, что для этого не существует какой-либо языковой конструкции, так как я много работаю с ее совокупными/составными классами. –
Не могли бы такие объявления разрешить любой сборке реализовывать 'IOrderItem', но он считает нужным, и передавать такие реализации на ничего не подозревающий код, который ожидает, что он будет реализован так, как это делает' 'OrderItem''? – supercat