Patrón Interfaz Marcadora (II)
Introducción
En la entrada anterior, vimos en qué consistía el Patrón Interfaz Marcadora y cómo usarlo a través de interfaces.
En esta entrada vamos a ver cómo implementar el Patrón Interfaz Marcadora a través de atributos.
Implementación del Patrón Interfaz Marcadora con atributos
Lo primero que debemos hacer es crear una clase que actúe como atributo con el cuál decorar una clase con el fin de hacerla del tipo que deseemos.
Por ejemplo:
1: public class MarcadoraAttribute : System.Attribute
2: {
3: } // MarcadoraAttribute
Una vez creado este atributo, crearemos la clase que decoraremos con el atributo que hemos creado para hacerla del tipo que queremos.
1: [Marcadora]
2: public class Foo
3: {
4: } // Foo
Finalmente tendremos la posibilidad de verificar que una determinada clase, está marcada con el atributo que indica que es de un tipo concreto.
En nuestro caso y para el ejemplo que hemos preparado, quedará de la siguiente manera:
1: Foo foo = new Foo();
2: if (foo.GetType().IsDefined(typeof(MarcadoraAttribute), false))
3: {
4: MessageBox.Show("Es marcadora");
5: }
6: else
7: {
8: MessageBox.Show("No es marcadora");
9: }
Espero que esto le sirva a más de uno para conocer cómo funciona y como utilizar este patrón.