Ver Mensaje Individual
  #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