Модель предметной области, над которой я работаю, имеет корневой агрегат и дочерние объекты
Что-то вроде следующего кода:
class Order
{
IList<OrderLine> Lines {get;set;}
}
class OrderLine
{
}
Теперь я хочу, чтобы мой ордер контролировал линии. Примерно так:
class Order
{
OrderLine[] Lines {get;}
void AddLine(OrderLine line);
}
В настоящее время мы используем следующий шаблон:
class Order
{
private IList<OrderLine> lines = new List<OrderLine>();
OrderLine[] Lines {get {return this.lines;}}
void AddLine(OrderLine line)
{
this.orders.Add(line);
{
}
NHibernate сопоставляется непосредственно с полем линий.
Теперь вопросы ...
- Что вы практикуете в таких ситуациях?
- Кто-нибудь использует методы:
public IEnumerable GetLines ()
- Что вы используете в качестве типа возврата для свойства? Может быть ReadOnlyCollection или IEnumerable;
- Может быть, это не лучшее место, чтобы спросить? Предложите пожалуйста.
Обновление: кажется, IEnumerable выигрывает, однако решение все еще не идеально ...