Object Calisthenics en PHP – “Reglas de oro” para escribir mejor código orientado a objetos

7 comentarios en “Object Calisthenics en PHP – “Reglas de oro” para escribir mejor código orientado a objetos”

  1. Muy bueno Jesus.
    Yo lo descubri hace “poco” limpiando el historial.
    Dos puntos.
    1. Lo de if/else a mi si me gusta. El ejemplo que pones es perfecto pero yo lo estoy aplicando a una aplicacion java y al debugar vas descartando opciones en cuanto se presentan. Es como decir “a la minima te vas a la calle”
    2. Lo de los get/set en PHP ayuda. Creo que lo dice por Java porque un JavaBean es una clase con set/get para todos y es contraproducente tener tanto metodo que luego ni usas y no pasa por ninguna logica.
    Me apunto el comprobador phpcs. Saludos

    Me gusta

  2. Gracias por haber compartido este blog. No conocía esta regla. Pero debo discernir con respecto a la última regla, “Sin getter, ni setter a propiedades”. Según lo que tengo entendido, definir estos métodos hace al cliente de la clase de objeto dependiente de la estructura interna de la clase y se pierde la semántica de los mensajes, cómo en el ejemplo, los métodos deposit y withdraw, son coherentes, violaría la regla si colocaríamos setBalance y getBalance (esto es feo), además creo que deberías declarar el balance como privado, y se debería definir un método para consultar el estado actual del balance, cómo current_balance o algo similar. Principio de Command/Query =) , en el ejemplo deposit y withdraw son comandos, modifican el estado del tipo de objeto Cuenta y current_balance sería la consulta.
    Por otro lado, esta regla es aplicable a cualquier lenguage imperativo, (eso creo)

    Saludos. =)

    Me gusta

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .