Encapsulamiento (POCO)

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

La encapsulación impide la manipulación externa de algunas partes de los objetos.

  • Fuerza al usuario a utilizar un método para acceder a los datos.
  • Hace que el código sea más fácil de mantener

Esto mejora la estabilidad de la aplicación, ya que el cambio directo de una variable puede afectar al correcto funcionamiento de la misma.

Esto permite un código más reutilizable, ya que este se encuentra encapsulado en módulos independientes.

Para ello declararé los métodos como public y las variables como private.

POCO (Plain Old CLR (Common Language Runtime) Object)

Forma óptima

class Person{
 public string name { get; set; }
 public int age { get; set; }
}
class POCOExample{
 static void Main(string[] args){
  Person p = new Person();
  p.name = "Juan";
  Console.WriteLine(p.name);
 }
}

Forma desglosada

class Person{
 private string _name;
 private int _age;
 public string name{
  get { return _name; }
  set { _name = value; }
 }

 public int age{
  get { return _age; }
  set { _age = value; }
 }
}
class POCOExample{
 static void Main(string[] args){
  Person p = new Person();
  p.name = "Paco";
  Console.WriteLine(p.name);
 }
}

¿Para qué sirve?

Nos permite tener un control mayor sobre los procesos de modificación y acceso de una propiedad.

Al hacer un pedido, no pueden venir más de 10 paquetes. Por tanto si vienen menos de 10 paquetes el número de paquetes en el almacén se modifica, pero pero si vienen más de 10 saltaría un mensaje de error

class Encapsulation{
 static void Main(string[] args){
  Warehouse warehouse = new Warehouse();
  warehouse.numBoxes = 12;
  Console.WriteLine(warehouse.numBoxes);
 }
}

class Warehouse{
 private int _numBoxes;

 public int numBoxes{
  get { return _numBoxes; }
  set{ 
   if (numBoxes > 10){
    Console.WriteLine("Deliveries of more than 10 units are not allowed");
   }else{
    _numBoxes = value;
   }
  }
 }
}

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.