Создание нового объекта только для преобразования не является лучшим подходом. Если ваш класс делает больше, чем это, то это может быть причиной для создания объекта TemperatureConverter
. Если преобразование - это единственное, что вам нужно, вы можете создать обычный статический класс, который также может содержать общие задачи, которые требуется вашей программе, или вы можете создать TemperatureConverter
со статическими функциями для преобразования.
Вы можете иметь отдельные статические функции для каждого преобразования, как:
double Util.celciusTo(double temp, TempUnit to)
double Util.fahrenheitTo(double temp, TempUnit to)
double Util.kelvinTo(double temp, TempUnit to)
TempUnit
является единица измерения температуры перечисления. Вы можете создать класс Util
и добавить дополнительную функцию полезности или создать TemperatureConverter
, содержащий статические функции, как указано выше, только для температурного преобразования.
Если TemperatureConverter
делает больше, чем просто преобразование, как сравнение температуры для сортировки List
и т.д., чем вы можете иметь такой класс, но есть несколько вещей, которые вы должны сделать:
- Dont сделать преобразование внутри конструктора. Делайте это по требованию
- Обеспечения функций получателя для значения тока и блока
- Обеспечить три функции для преобразования, которые будут обновлять внутреннее состояние объекта (измерение обновления и единиц) и вернуть обновленное значение
- функцию Override ToString для хорошо печать значений
Просто добавление для учебного аспекта. Единица измерения может быть классом enum со своими значениями. А также передаваться как аргумент вместо 'String to'. Как вы думаете? – Patrick
@Patrick Кажется хорошим, однако, поскольку OP задал вопрос только с помощью простой механики, я попытался удалить все, что не является «необходимым» для выполнения задачи. Перечисление возможных значений будет правильным подходом, но потребуйте знания, я не верю, что OP имеет ... В моем ответе я даже удалил ненужные переменные .... – Bonatti