Introducción A partir de la versión 4.5 de .Net framework se ha simplificado de forma considerable la forma en que podemos trabajar con código asíncrono. Con los anteriores frameworks, si queríamos contar con los beneficios de una programación asíncrona nos veíamos obligados a lidiar con una gran complejidad en nuestro código. Esto nos hacía evitar su uso en lo posible a pesar de perder esta importante característica. Stephen Cleary , un MVP especializado en concurrencia define la programación asíncrona como: Una forma de concurrencia que utiliza futuros o "callbacks" para evitar hilos innecesarios. La programación moderna con async y await nos abstrae de la utilización de "callbacks" y nos permite utilizar futuros (Tasks) que se encargarán de notificar al llamante cuando el método asíncrono se complete. async y await Las palabras async y await son las palabras clave que .Net ha introducido en el lenguaje para que podamos implementar métodos asíncronos co...
Encapsular constructores
Hay un principio de programación que dice: separar el uso de las clases de su creación. De la misma forma que anteriormente he mencionado que para acceder al estado de una clase se debe controlar la forma en que lo vamos a permitir por medio de los controladores de acceso, también se puede hacer extensible a su construcción.Podemos encontrarnos en situaciones en las que el hecho de crear una instancia de una clase puede conllevar conocimientos internos que no tiene por qué conocer el cliente.
Para llevar a cabo esta práctica se protege el constructor mediante un modificador
private
o protected
evitando la posibilidad de crear una instancia desde el exterior. La única forma de crear una instancia es mediante el uso de uno o varios métodos estáticos de la propia clase.En el siguiente ejemplo estamos restringiendo la creación de un objeto
Coche
. Sólo se pueden crear mediante los métodos estáticos. Así conseguimos que la lógica de creación de objetos quede encapsulada.
Su uso quedaría de la siguiente forma:
En el ejemplo permitimos la creación de instancias sólo mediante los métodos estáticos DameDeportivo
y DameTurismo
. De esta forma libramos al cliente la necesidad de conocer las interioridades de la clase como pueden ser los caballos de potencia o el número de velocidades.
Un intento de instanciar una clase mediante el operador new
daría un error de compilación.
<< Volver a Parte 3. Descriptores de acceso. Controlando la forma de acceder al estado.
Comentarios
Publicar un comentario