El principio 'Tell Don't Ask' es un enfoque de programación orientada a objetos que enfatiza en la importancia de decirle a los objetos qué hacer, en lugar de preguntarles por su estado y tomar decisiones basadas en esa información. Propuesto por Martin Fowler, este principio promueve el diseño de software con un acoplamiento más bajo y una mayor cohesión.
Considere un objeto 'Empleado
' con métodos para obtener su salario y calcular bonificaciones. Un enfoque que no sigue el principio Tell Don't Ask sería:
Empleado empleado = new Empleado();
if (empleado.getSalario() > 30000) {
double bonificacion = empleado.calcularBonificacion();
// ...otros cálculos y acciones
}
Una implementación que sigue el principio Tell Don't Ask delegaría la responsabilidad al objeto 'Empleado
' para determinar si se debe calcular la bonificación:
public class Empleado {
public void procesarBonificacion() {
if (this.getSalario() > 30000) {
double bonificacion = this.calcularBonificacion();
// ...otros cálculos y acciones
}
}
// ...otros métodos y propiedades
}
En este ejemplo, la lógica de negocios relacionada con el cálculo de bonificaciones se encapsula dentro del objeto 'Empleado
', mejorando el diseño orientado a objetos y facilitando el mantenimiento y escalabilidad del código.
Jorge García
Fullstack developer