Mostrando composición y agregación en UML
En la 1ª Parte aprendimos el rombo sólido en el
diagrama UML indica una relación llamada composición en la terminología
orientada a objetos. Composición significa que un objeto no puede existir sin
otro objeto. Como ejemplo, un coche sin motor no es realmente un coche. Si el
motor deja de funcionar, el coche deja de funcionar o necesita por lo menos
para obtener un nuevo motor para poner el coche en marcha.
Este diagrama presenta un nuevo elemento de UML, el rombo abierto. El rombo abierto
indica una relación llamada agregación. La agregación implica que un objeto puede utilizar otro objeto, pero se pueden crear sin él: un coche puede tener un conductor, pero sin un conductor sigue siendo un coche.
No necesariamente se debe estar de acuerdo con la asignación de rombos abiertos y cerrados en un diagrama. Los diseñadores a menudo no están de acuerdo sobre las diferencias entre la composición y agregación.
Como cambiar el Namespace
En .NET, las clases
se encuentran en espacios de nombres. Un espacio de nombres define el ámbito de
una clase. Los proyectos en este blog hasta ahora han tenido un espacio de
nombres, que es idéntico al nombre del proyecto, pero esto puede cambiar.
En .NET, los espacios de nombres se
nombran de una manera particular, por convención: Compañía.Tecnologia. En esta
biblioteca, la compañía NISIA Co.ltd ha creado varias de clases para manejar
una empresa. Así, las clases estarán contenidas en el espacio de nombres NISIA.EmpresaGenerica.
Cambio del namespace
1. En el Explorador de soluciones, hacer clic en el
proyecto y hacer clic en EmpresaGenerica Propiedades en el menú contextual. Se
abrirán las páginas de propiedades. Tener en cuenta que el ajuste del tipo de
salida es una biblioteca de clases. La salida de este proyecto será un archivo.
dll. Se pueden utilizar los objetos definidos en un archivo de biblioteca de
clases, pero no se puede ejecutar un archivo. dll.
2. Escribir las siguientes líneas Namespace para
agrupar las clases generadas.
Namespace EmpresaGenerica
Public Class CCliente
End Class
End Namespace
Las clases posteriores añadidas al proyecto se
agregarán a este espacio de nombres.
Al compilar se crea InterfazClases.dll
Abrimos otro proyecto y agregamos la dll
Grabamos y
debe aparecer en la pestaña Recent
Ahora en el
Código de nuestro proyecto debo tener acceso a las clases de mi dll agregada.
Para manejar
la clase de la dll basta con instanciar
el objeto y usarlo como si fuera de nuestro programa.
Dim miCliente As
NISIA.ClasesGenericas.EmpresaGenerica.CCliente = New
NISIA.ClasesGenericas.EmpresaGenerica.CCliente
If
miCliente.Baja = False Then
MsgBox("Se produjo un error al dar de
baja el cliente")
End If
Añadir un componente a la barra de herramientas
También se pueden crear componentes que
sean controles para añadir en la caja de herramientas, este tipo de componentes
están más extendidos y hay muchas empresas comerciales que los distribuyen. Podemos consultar
algunos componentes ya creados en:
Se pueden utilizar de forma simple arrastrando desde la caja de
herramientas a un formulario.
Cuando un desarrollador coloca un control cliente o un componente
en el diseñador de formularios, le gustaría tener las propiedades del control y
tener un texto de ayuda en la ventana Propiedades, además desea que el control
tenga su propio icono en la Caja de Herramientas. En este documento, vamos
a escribir un control diseñado con
clases y pensando en otros desarrolladores que posteriormente puedan utilizar
estos controles.
Abrimos un nuevo proyecto como Windows Control Library
Creando el Control Peón
El control Peón
hereda de la clase UserControl.
En este proyecto, se podrían heredar las propiedades de un botón pero
obtendremos un mejor resultado al heredar de la clase UserControl ya
que el control Button
tiene varias propiedades que no se desea que el usuario tenga acceso a ellas,
como texto e imagen.
Para controlar las
propiedades de forma que reflejen la demanda del usuario, se pueden añadir nuevas
cadenas de ayuda para las propiedades, una ventana de propiedad con la categoría
de las propiedades, o un icono de cuadro de herramientas. También se puede
utilizar otra imagen para actualizar
dinámicamente mediante eventos la
apariencia del control
Añadir una referencia al control Peón desde el Programa Ajedrez
Una vez creado el
control peón, podremos añadir dicho control al proyecto ajedrez, para ello lo
añadiremos en las referencias del proyecto. Pero antes hay que poner el
proyecto peón en modo Release y ejecutar para que cree una .dll llamada
Peon.dll, hecho esto abrimos el proyecto ajedrez y añadimos la referencia igual
que en el punto anterior.
Cuando se agrega el
control peón a la caja de herramientas, sólo se tiene que agregar un control arrastrándolo
a un formulario. Seguir estos pasos para agregar el control al cuadro de
herramientas:
1. Hacer doble clic en Form1 del proyecto de ajedrez en el Explorador de soluciones.
2. Hacer clic en la caja de herramientas y hacer click en Agregar ficha en el menú contextual. A
la nueva pestaña en la parte inferior de la caja de herramientas.
3. Escribir el nombre de la nueva pestaña y pulsar
Intro.
4. Hacer click en la
pestaña Controles de Usuario Choose Items…
Buscar la .dll
llamada peon.dll en el equipo pulsando el botón Browse de la caja de diálogo
Ahora ya se puede coger el control y arrastrarlo al
formulario, y cambiarlo el nombre a Peon.
Con el botón derecho
podemos sacar las propiedades
Tener en cuenta que la propiedad de texto no
está en las ventanas de propiedades.
Cómo crear el componente Tablero
Vamos a generar el
tablero de ajedrez como un componente, lo que significa que seremos capaces de
añadir un icono del componente tablero al cuadro de herramientas. Al arrastrar
el componente de la caja de herramientas al formulario, se coloca una instancia
de él en el formulario.
Al crear un componente tablero, se pueden utilizar el
entorno de las herramientas gráficas de Visual Studio. Net Design para
establecer las propiedades del componente.
El usuario puede
utilizar un editor similar al editor de la colección para el control ListBox
para elegir el los valores en tiempo de diseño.
Añadir un control tablero al programa ajedrez como componente
1. Sobre el explorador de soluciones,
pulsamos el botón derecho del ratón y elegimos add y elegimos Component
2. Aparece la caja de diálogo donde
escribimos Tablero.vb y pulsamos Add.
3. Aparece en el explorador de soluciones
Tablero.vb
Aparece esta pantalla que nos permite
arrastrar controles de la caja de herramientas sobre nuestro componente, o
escribir código directamente.
El componente a su vez contiene un componente de campo,
de modo que el
componente puede alojar otros componentes:
componente puede alojar otros componentes:
Public Class Tablero
Private Componente As
System.ComponentModel.Container
End Class
Definir el icono de la caja de herramientas para el componente
Para definir un icono para el component
tablero, añadimos un bitmap de 16 x 16 al proyecto.
1. Crear un bitmap de 16 x 16 pixels,
llamarlo Tablero.bmp y guardarlo en el directorio del proyecto
2. En el Explorador de soluciones pulsar el
botón derecho, elegir Add, clicar
en Add Existing Item y elegir el icono
creado.
3. En la ventana de propiedades del
bitmap en la propiedad Build Action elegir Embedded Resource. Esto
añadirá el bitmap al archivo de ensamblado.
No hay comentarios:
Publicar un comentario