14 mayo 2010

Encapsular lo que varía

Principio: Encapsular lo que varía (Encapsulate what varies)

Veamos primero que es la Encapsulación. La encapsulación permite ocultar la funcionalidad interna de las partes de tu aplicación, es decir, ocultar la implementación de una parte de tu aplicación de tal forma que sea fácil de usar y cambiar. Esto hace que esa parte de tu aplicación actué como una caja negra para proveer servicios a sus usuarios.

La encapsulación permite a una clase que sus datos no puedan ser cambiados en una forma directa o usar esos datos de manera incorrecta, es decir proteger la información de tu código para evitar que se use incorrectamente.

La encapsulación también te ayuda a separar el comportamiento de ciertas partes de tu aplicación, tú podrías colocar cierto comportamiento en un código dentro de un método y colocar ese método en una clase, entonces tu habrás separado ese comportamiento del resto de tu aplicación y la aplicación tiene que usar esa nueva clase y método para tener acceso a ese comportamiento, es el mismo principio que se usan con los datos solo que ahora se separa partes de la aplicación para protegerlos de usarlos incorrectamente.

En resumen la Encapsulación es cuando tu separas o ocultas una parte de tu código del resto de tu código, la mas simple forma de encapsulación es cuando defines las variables de tu clase como privadas y solo expones esos datos a través de métodos en la clase.


También se pueden encapsular grupos de datos o aún comportamiento de tu aplicación, para tener control de como se debe tener acceso a ellos.


El principio Encapsular lo que varía, se refiere a que siempre que se tiene un comportamiento en la aplicación que se considera que pueda cambiar, se debe apartar ese comportamiento de las partes de la aplicación que permanecen sin cambio.

Veamos un ejemplo:
Aquí tenemos una simple clase llamada Pato que tiene 3 métodos; nadar, volar y mostrar, los métodos nadar y mostrar permanecen constantes para todos los objetos Pato, pero el método volar no es una constante ya que algunos objetos Pato no vuelan mientras otros vuelan, entonces aquí es una buena oportunidad para aplicar el principio Encapsular lo que varía
Hemos encapsulado lo que varía, el comportamiento volar

No hay comentarios:

Publicar un comentario