Предположим, у меня есть автомобиль с пятью параметрами, {numwheels, цвет, пробег, лошадиная сила, maxSpeed}. У меня есть метод, который нуждается в 3 из этих значений. Какой из двух вариантов считается лучшей практикой? Лучше ли передавать охватывающий объект и уменьшать количество параметров, ИЛИ просто передавать минимально-минимальные данные в метод (например: числовые символы и цвет не будут доступны в методе 2)?Хорошо ли передавать минимальные параметры?
Вариант 1 проход весь объект:
void compute(Car c, Person p) { return c.mileage + c.horsepower + c.maxSpeed + p.age; }
Вариант 2: передать все значение методы.
void compute(int mileage, int horsepower, int maxSpeed, int age) { return mileage + horsepower + maxSpeed + age.; }
Примечание: предположим, по какой-то причине, вычислить не может быть частью класса Car. Пожалуйста, ответьте на это предположение.
Это, вероятно, вкус, который решает.Следующее соглашение всегда помогает, поэтому я бы сказал, что переход с меньшими аргументами более распространен, имеет больше смысла, и наиболее важным является более гибкий (изменение полей в классе «Car» не меняет подписи метода). – Dragan