Foros del Web » Programando para Internet » PHP »

Duda encapsulación

Estas en el tema de Duda encapsulación en el foro de PHP en Foros del Web. Hola buenas tardes... Siempre me he preguntado que sentido tiene encapsular un atributo como privado si al fin de al cabo yo puedo manipularlo mediante ...
  #1 (permalink)  
Antiguo 04/11/2017, 14:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 43
Antigüedad: 17 años, 1 mes
Puntos: 0
Duda encapsulación

Hola buenas tardes... Siempre me he preguntado que sentido tiene encapsular un atributo como privado si al fin de al cabo yo puedo manipularlo mediante un metodo publico y cambiar su propiedad desde ahi.. Entonces que sentido tiene. Agradezco la explcación. Muchas gracias.
  #2 (permalink)  
Antiguo 04/11/2017, 15:55
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda encapsulación

Dado que no soy muy bueno explicando, además de que aprendí poo sin ayuda y no tengo ningun fundamento teorico sino práctico, dicho esto, mi respuesta, y es totalmente mi punto de vista:

Se puede abordar de muchas maneras tu duda, pero realmente lo importante es simple proteccion. hay atributos que a veces no deseas cambiar en absoluto, ya que el objeto puede dejar de funcionar como debe, y no incluyes ningun metodo para hacer ese cambio (set). todo depende de que estas haciendo.

Se usa mucho tambien en herencias.

Ejemplo "teórico", es el objeto mysqli, que no cuenta con ningun metodo que te permita cambiar el atributo host, de cambiarlo la conexión se pierde.

Otro ejemplo un poco idiota puede ser este:

Código PHP:
Ver original
  1. class Numeros{
  2. private $tres = 3;
  3.  
  4.     public function divisibleEntreTres($num){
  5.         if($num%$this->tres == 0){
  6.         return true;
  7.         }
  8.     return false;
  9.     }
  10.  
  11. }

Si un objeto pudiera cambiar el atributo $tres la funcion divisibleEntreTres deja de funcionar, repito es algo idiota, pero es un ejemplo.

Cuando creas tu propio programa y solo para tu uso puede que no sea algo muy util, pero cuando se comparte el código entre varios programas, proyectos y programadores, el encapsulamiento sirve bastante, yo personalmente lo uso mucho en proyectos de empresas, donde somos un puñado de ñoños haciendo sistemas.

Espero te pueda servir, mi respuesta. De todos modos aca hay muchos usuarios que te pueden dar una cátedra de esto. y espero te puedan ayudar más que yo.

Saludos.

Última edición por alvaro_trewhela; 04/11/2017 a las 16:09

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:05.