Estoy implementando un DelegateCommand
, y cuando estaba a punto de implementar los constructores, se me ocurrieron las siguientes dos opciones de diseño:
1: Tener múltiples constructores sobrecargados
public DelegateCommand(Action<T> execute) : this(execute, null) { }
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
2: Tener solo un constructor con un parámetro opcional
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
No sé cuál usar porque no sé qué posibles ventajas / desventajas vienen con cualquiera de las dos formas propuestas. Ambos se pueden llamar así:
var command = new DelegateCommand(this.myExecute);
var command2 = new DelegateCommand(this.myExecute, this.myCanExecute);
¿Puede alguien señalarme en la dirección correcta y dar su opinión?
Bitmap.FromFile
) también son una opción