public static void Main()
var paq1 = new Paquete(10, 10, 15, 20);
var cli = new Cliente("NIF1", "Max", true, true, true);
var gestor = new GestorDescuentos(cli);
Console.WriteLine("Precio Moroso = " + paq1.Precio);
Console.WriteLine("Precio Socio = " + paq1.Precio);
Console.WriteLine("Precio Gran Cuenta = " + paq1.Precio);
cli.EsGranCuenta = false;
Console.WriteLine("Precio General = " + paq1.Precio);
public class GestorDescuentos
private Cliente _cliente;
public GestorDescuentos(Cliente cliente)
public void SetPrecio(Paquete paquete)
else if(_cliente.EsSocio)
paquete.Precio = (paquete.Alto + 1);
else if(_cliente.EsGranCuenta)
paquete.Precio = (paquete.Alto + paquete.Peso);
paquete.Precio = (paquete.Alto * paquete.Peso);
public Paquete(double peso, double alto,double ancho,double largo)
public double Alto {private set; get;}
public double Ancho {private set; get;}
public double Largo {private set; get;}
public double Peso {private set; get;}
public double Precio {set; get;}
public override string ToString()
return Peso + " Kg. Dim=" + Alto + "x" + Ancho + "x" + Largo + ".";
public Cliente(string nif, string nombre, bool esGranCuenta, bool esMoroso, bool esSocio)
EsGranCuenta = esGranCuenta;
public string Nif {set; get;}
public string Nombre {set; get;}
public bool EsGranCuenta {set; get;}
public bool EsMoroso {set; get;}
public bool EsSocio {set; get;}