2012-02-10 2 views
1

У меня есть проблема с моим текущим CodeBook.Кодовая книга ДРУГОЕ значение

CodeBook - это объект, который состоит из двух атрибутов: Code и Description. Это абстрактный класс. Я расширил этот класс классом Domain.
Класс домена также является абстрактным классом и содержит enum DomainType, который имеет значения: например. NATIONALITY, NATIVE_LANGUAGE, DISEAS и т. Д.

Теперь я должен создать объекты «документа», которые позже будут заполнены данными.

Так, например, клиент должен выбрать национальность. Он выберет один из списка значений, введенных в кодовую книгу DomainNationality (Расширяет домен) для domainType.NATIONALITY, НО что, если у меня нет своего гражданства в моем CodeBook? Я поставлю опцию OTHER, которую он может выбрать, но мне также нужно поставить поле, где он наберет свой OTHER гражданство.

Как вести учет этого другого гражданства? В настоящее время мои объекты документа имеют ассоциативные ссылки на DomainNationality.DomainSex, DomainNativeLanguage и т. Д. Является ли поле String рядом с каждым доменом в моем документе лучшим и самым простым решением? Я не хочу, чтобы клиенты вводили новый материал в CodeBook.

Спасибо!

ответ

0

Это, главным образом, ваше дизайнерское решение. Вы можете сделать это, когда-либо, как вы разрабатываете свои объекты-обязанности. Но вот мои мысли: поскольку вы говорите, что национальность клиента не входит в число тех, которые вы предлагаете, и хотите предложить ему/ей поле для ввода индивидуального гражданства, вы должны просто сохранить национальность в виде строки в объекте (нет переименование). Вы всегда можете проверить это, если национальность клиента входит в число предопределенных.