Когда использовать дозорные значения? - PullRequest
0 голосов
/ 19 августа 2011

Мне недавно пришлось использовать API определения местоположения GPS, где каждый объект местоположения имел среди прочего два свойства altitude и verticalAccuracy. Отрицательное значение verticalAccuracy означает, что altitude недопустимо, тогда как обычно меньшее, но положительное значение verticalAccuracy фактически означает, что altitude является более точным (поскольку это вертикальное расстояние, на котором оно может быть отклонено - я оставлю обсуждение того, почему эта мера называется verticalAccuracy, а не verticalInaccuracy в другое время).

Это заставило меня задуматься: когда будет хорошей идеей использовать дозорные значения, как это делает API, и когда было бы лучше явно создать отдельное свойство hasValidAltitude? Есть ли другие варианты?

1 Ответ

1 голос
/ 19 августа 2011

Иногда дозорные ответы на самом деле не возможны; возможно, диапазон функции совпадает с кодоменом (диапазон). Это не относится к высоте, если только вы не допустите отрицательные высоты (возможно, в будущем появятся подводные города). Например, может быть, мы говорим о пересечении между строками (не очень хороший пример, так как с плавающей запятой имеют несколько встроенных часовых, например, + INF и NaN) или точный целочисленный коэффициент (без округления, это не гарантирует существовать ... например, 7 и 3 ... здесь остаток после деления можно рассматривать как свойство часового или как "точное целое отношение существует"). В более общем смысле любой надежный страж может быть тривиально использован для создания механизма, основанного на свойствах.

Исходя из этого, я бы рекомендовал избегать часовых, где это возможно и имеет смысл. Я считаю, что они являются внутренней деталью реализации модуля и должны быть заключены в интерфейс, скрывающий информацию.

...