public static void Main()
double valor = Converter.Convert(100, new Celsius(), new Farenheit());
Console.WriteLine(valor);
public interface ITempertureUnit
double FromKelvin(double value);
double ToKelvin(double value);
public class Celsius : ITempertureUnit
public double FromKelvin(double value)
public double ToKelvin(double value)
public class Kelvin : ITempertureUnit
public double FromKelvin(double value)
public double ToKelvin(double value)
public class Farenheit : ITempertureUnit
public double FromKelvin(double value)
return value * 1.8 - 459.67;
public double ToKelvin(double value)
return (value + 459.67) / 1.8;
public static class Converter
public static double Convert(double value, ITempertureUnit from, ITempertureUnit to)
return to.FromKelvin(from.ToKelvin(value));