Джерад, на эти трудные вопросы, на которые вы обычно отвечаете, как вы отметили.
Я лично предпочитаю использовать примитивы в сигнатурах методов, где это возможно.Если мне нужно передать 3+ примитива методу, я определяю пользовательские объекты передачи данных.
Мыслящее существо: если несколько значений передаются вместе, вероятно, они представляют концепцию в вашем проблемном пространстве и, следовательно, должны стать объектом.Например, если вы передаете координаты X и Y методу, я бы порекомендовал создать класс Point или структуру, которая представляет эту концепцию.
Единственный раз, когда я получаю изменения в сигнатуре,было бы обеспечить удобные методы, которые предоставляют значения по умолчанию для параметров метода.Чтобы продолжить приведенный выше пример, метод Draw может не требовать Point, и в этом случае я бы использовал (0,0).
Итак, я бы ответил # 1 с «не очень открытым» и #2 с А.
Надеюсь, это поможет.