Меня в общем и целом устраивает такой дизайн класса. Но хочется отметить следующие недостатки. Во-первых когда есть переменная с температурой, по ней сложно понять в каких она еденицах измерения. Во-вторых ваш дизайн приводит к размножению функций, если мы потом решим добавить новые единицы измерения. В третьих, у людей буду в коде постоянные `if` или `switch`, чтобы выбрать нужную функцию.

Сильно я не думал, но навскидку предложил бы следующее:
* Завести enum c перечислением единиц измерений
* Завести структуру `struct Temperature`, хранящую этот enum и значение типа double. Возможно стоит даже сделать класс с методами `set`, которые бы например бросали исключение если мы хотим задать неправильное значение температуры (-300 по Цельсию)
* Тогда в вашем классе можно будет оставить одну функцию конверсии типа:
```
Temperature ConvertTemperature(Temperature fromTemperature, Unit toUnit);
```
На мой взгляд такой дизайн снимет недостатки, указанные выше. Конечно, вы можете его еще доработать и сделать еще более надежным и понятным!