реализация отношений один к одному в объектной модели - PullRequest
1 голос
/ 19 июля 2011

Предположим, что объект Person может иметь много адресов, но должен иметь один

Вы предпочитаете указывать один требуемый адрес в объектной модели? Если да, то какие советы по реализации?

Приветствия
Berryl

Person{
    Address TheRequiredAddress {get;}    

    IList<Address> OtherAddresses {....}
}

1 Ответ

2 голосов
/ 19 июля 2011

Мне нравится этот вопрос. Как и в большинстве дизайнерских решений, это контекстно. Как это будет использоваться.

Предположим, у меня есть основной адрес в Сиэтле и дача в Фениксе, а также почтовый ящик для деловых целей. Будет ли мой основной адрес иметь особый приоритет над другими, или выбор адреса будет произвольным? Будете ли вы пытаться найти меня в Сиэтле, прежде чем попробовать мой летний домик или мой почтовый ящик?

В случае, когда основной адрес обрабатывается по-другому, я бы сохранял его в явно отдельном месте. В противном случае сохраните их в произвольно упорядоченной коллекции и выполните требование по крайней мере для одного в реализации класса.

...