Ниже приведен сценарий.
У меня есть то, что называется Domain
, в котором может быть несколько States
(пара значений Statekey-Statevalue). Один и тот же StateKey может присутствовать в нескольких доменах, но с другим StateValue.
например, StateKey с именем «EconomicCapital» может присутствовать в доменах, таких как «Англия», «Америка» со значениями «Лондон», 'Washington' соответственно.
Соответствующие им классы находятся в общей библиотеке, которую можно использовать на стороне клиента или службы по мере необходимости.
У меня есть приложение winform, в котором я могу выбрать определенныйдомен.В любой строке, где бы я ни встречался с каким-либо StateKey, я хочу заменить его на StateValue для выбранного домена.
Я могу придумать следующие варианты:
- Установить композиционные отношения.Домен может состоять из Штатов.Поэтому, когда мне нужно StateValue любого StateKey, я могу получить объект требуемого домена и извлечь из него составленный StateKey из коллекции States.
Но может быть большое количество случаев, когда StateKeyбудет использоваться, я не думаю, что этот подход является довольно хорошим, поскольку он требует поиска объекта Domain из коллекции доменов и повторения его коллекции State для поиска конкретного ключа.
ИЛИ
- Поддерживать статическую коллекцию, которая может содержать все StateKeys в другом домене.Когда я хочу конкретный StateKey, я могу просто искать в этой коллекции.
Не могли бы вы дать мне совет, какой подход более уместен?Будет ли какой-то другой подход / дизайн?
(Если логика реализована на стороне службы; не только одно приложение winform, но многие такие приложения могут получить к нему доступ.)