Cita:
Iniciado por Sanva No estoy de acuerdo:
Si utilizas un getter/setter sin lógica interna (simplemente asignar el valor a la variable, y listo) es verdad, pero si utilizas una lógica interna, un getter/setter sólo se diferencia en la sintaxis utilizada para acceder al valor. No se si me explico...
Código PHP:
$a -> nombre = 'Sanva';
es exactamente lo mismo que
Código PHP:
$a -> definirNombre('Sanva');
. No violas el principio de ocultación, ya que nadie sabe cómo funciona el getter/setter de forma interna.
No estás entendiendo el punto ni el principio. El principio de ocultación habla de evitar el acceso o modificación de los atributos del objeto desde el exterior, no tiene nada que ver con los setter y getter, estos aparecen después con la existencia de situaciones que te imposibilitan poder cumplir estrictamente con el principio.
En el mundo ideal, deberíamos tener SOLO atributos privados / protegidos y para comunicarnos con el exterior únicamente métodos públicos.