Tabla de Contenidos
Principio de ocultación
Es la propiedad que adquiere un objeto cuando esconde algunos de sus atributos para que no puedan ser modificados ni obtenidos al menos que sea por los mensajes definidos del objeto.
Ejemplos
- Semáforo.- Un semáforo lleva un control interno del tiempo que tarda en cambiar de color y un estado de que color debe mostrar, ese tiempo solo puede ser alterado por un control el cual se conecta al centro de mando del semáforo.
- Turno de espera.- Cuando una persona va realizar un movimiento a un banco, primero llega a tomar un turno, en una pantalla ve el turno actual, entonces debe esperar a que los turnos avances y aparezca el turno que le tocó a la persona, el turno lo van avanzando los cajeros del banco mediante un control que tiene cada uno.
- Variables privadas.- Cuando se programan clases, suelen ponerse variables con ámbito privado, esto quiere decir que nadie a excepción de los mismos elementos de la clase puedan verla.
Aplicación en CSharp
En el siguiente ejemplo veremos como una casa muestra si la luz esta encendida o apagada, a su vez veremos que este valor solo puede ser modificado por medio de unos métodos.
- concepto_ocultacion.cs
using System; namespace Capacitacion.Ocultacion { public class Casa { bool estaLuzEncendida = false; public bool EstaLuzEncendida { get { return estaLuzEncendida; } } public void EncenderLuz() { Console.WriteLine("Encendiendo luz"); estaLuzEncendida = true; } public void ApagarLuz() { Console.WriteLine("Apagando luz"); estaLuzEncendida = false; } } public class Program { public static void Main(string[] args) { var casa = new Casa(); Console.WriteLine($"La luz está {(casa.EstaLuzEncendida ? "encendida" : "apagada")}."); casa.EncenderLuz(); Console.WriteLine($"La luz está {(casa.EstaLuzEncendida ? "encendida" : "apagada")}."); casa.ApagarLuz(); Console.WriteLine($"La luz está {(casa.EstaLuzEncendida ? "encendida" : "apagada")}."); Console.ReadLine(); } } }