вторник, 19 апреля 2011 г.

с. 165 Модификация модели спецификации (Фаулер)


Итак... Для Типа Показателя смоделирована квалифицированная роль Строка. Что это такое?.. Показатель связан с Типом Показателя посредством роли Строка. В каждом экземпляре Показателя Тип Показателя представлен Строкой?.. В Показателе Строка, т.е. Тип Показателя, может присутствовать, а может и отсутствовать. А зачем нужен Показатель без Типа Показателя?.. Что он показывает, такой Показатель?.. Смотрим в другом направлении. Строка (Тип Показателя) ассоциирована с Показателем (максимум с одним), либо не ассоциирована... Строка Типа Показателя связана с максимум одним Показателем... Непонятно. Вот тот же пример взять. Есть два Показателя: "мужчина" и "женщина". Оба они ассоциируются с Типом показателя "род". Что в этом случае есть Строка?.. Строка01 связана с "мужчина", Строка02 связана с "женщина". Получается, что Строка - это интегрированный в Тип Показателя Показатель... Ну вот, начало потихоньку проясняться... И всё равно как-то плохо смотрится, что Показатель может быть сам по себе, без Типа Показателя. И именно поэтому Наблюдение имеет отдельную ассоциацию с Типом Показателя. Кстати, класс Observation, созданный по мотивам Наблюдения, не имеет выделенной связи с Типом Показателя, только через Показатель...
Прямую связь с Типом Показателя имеет Измерение, которое наследует Наблюдение. А на диаграмме это не отмечено. 
Интересно, а если Наблюдение будет иметь связь с Показателем, который имеет связь с Типом Показателя, то нужно будет вводить проверку, чтобы Наблюдение не было связано с другим экземпляром Типа Показателя? Запутанно как...
Удаление класса Измерение требует изменения класса Наблюдение. И в нём добавляется куча контролей, например, с тем же нулевым количеством. Каким же в итоге получится интерфейс этого класса и сколько трудов понадобится для его внутренней реализации? Не нравится мне это.


Комментариев нет:

Отправить комментарий