Думаю эти две строки показывают, что методы scaleFrom и scaleTo должны быть в температуре. Ну и возможно можно оставить только один из них. Хотелось бы писать просто: `new = current.convertTo(TemperatureUnits::Kelvin);`

Если честно, с текущим дизайном нужно подумать, я не могу так сразу предложить явное улучшение. Но 3 сущности это пожалуй слишком много для такой задачи. Опять же, я не понимаю в чем именно ответственность каждой из них. Этот самый пересчет повис между enum и конвертором... И пользоваться температурой напрямую неудобно, нужно знать про enum и его методы, и писать такие длинные конструкции как в этих двух строках.

Я бы подумал в какую сторону: отупить enum, пусть он только знает про единицы и например коэффициенты пересчета. Сам пересчет делает температура, пользуясь коэффициентами из него. А класса конвертор вообще нет...