В Анализ шаблонов, Фаулер описывает, как бороться с клиническими наблюдениями, которые могут быть либо измерением числового значения, либо категорическим наблюдением (отсутствие или наличие симптомов, пола и т. Д.). Вот соответствующая схема:Каким должен быть интерфейс для наблюдения Фаулера?
Эта схема предполагает, что Observation
должен быть какой-то общий интерфейс для Measurement
и Category Observation
. Но я не вижу, как это можно сделать на строго типизированном языке. Предположим, например, что я хочу перебрать все Observation
s, сделанные на Person
, и сделать что-то другое в зависимости от того, являются ли они Measurement
s или Category Observation
, как я могу избежать обмана, такого как тестирование типа объекта, литье и т. Д.?
Кто-то с репутацией 11.5k должен знать, почему это было помечено мной для закрытия – ChrisBint