Principio de “Tell, Don’t ask” en Programación Orientada a Objetos

tell dont ask

El “Tell, Don’t ask” es un principio que nos indica que no tenemos que usar los objetos para pedirles cosas y según la información que nos devuelven tomar decisiones, sino que debemos decirles a los objetos que hagan cosas y estos objetos internamente tomaran sus propias decisiones según su estado.

Este principio casa perfectamente con la idea de que un objeto se define por su comportamiento; y además es fundamental para sacar partido al polimorfismo y la inversión de control. Es decir si nos dedicamos a preguntar y tomar nosotros las decisiones estaremos acoplándonos, será prácticamente imposible hacer cambios al objeto, estaremos incumpliendo el principio Open/Close, nuestro sistema será más difícil de mantener, y por lo tanto más caro.

Al exponer el estado de una clase a las demás para que pueda ser manipulada estamos violando su encapsulamiento y asumiendo riesgos, ademas de que estamos moviendo responsabilidades a las clases de mayor nivel.

El principio fundamental de la programación orientada a objetos es la unificación de métodos y datos, por lo que lo correcto es que cuando una clase requiere conocer el estado de otra, es importante evaluar que uso se le darán a esos datos, y realizar el procesamiento de esa información en la clase expuesta, evitando la dispersión y propagación de estado.

Para mas información pueden consultar los artículos de Carles Climent o Alejandro Pérez García

Comments

comments

Leave a Reply

%d bloggers like this: