Open CrisDonosoMaass opened 1 month ago
bump, misma duda acá
Hola, no se habla nada explícitamente en Clean Code con respecto al uso de Function
o Action
, pero me cuesta mucho creer que pueden encontrar un buen nombre para Function(int value, Action<char, unit> operation)
.
Una alternativa que les doy es utilizar interfaces.
Digamos que originalmente tienen algo de este estilo:
public class AClass {
public bool AMethod(string aString) {
/* ... */
}
public void AnotherMethod() {
B b = new B(AMethod);
}
}
public class B {
private Function<string, bool> _method;
public B(Function<string, bool> method) {
_method = method;
}
public void DoSomething() {
if (_method("Hello, World!")) {
/* ... */
}
}
}
Pueden modificarlo, para tener algo de este estilo:
public interface AInterface {
bool AMethod(string aString);
}
public class AClass : AInterface {
public bool AMethod(string aString) {
/* ... */
}
public void AnotherMethod() {
B b = new B(this);
}
}
public class B {
private AInterface _a;
public B(AInterface a) {
_a = a;
}
public void DoSomething() {
if (_a.AMethod("Hello, World!")) {
/* ... */
}
}
}
Con la segunda opción, al tener la interfaz, tienen el nombre de la interfaz y del método para darle más contexto al lector de lo que está pasando.
Hola! Va en contra de Clean Code darle una Action a una función como Function(int value, Action<char, unit> operation), para así poder hacer distintas acciones dependiendo del input?