Relaciones Entre - Clases C# Y UML
Relaciones Entre - Clases C# Y UML
Relaciones Entre - Clases C# Y UML
DEPENDENCIA
Definición: Es una relación de uso entre dos clases (una usa a la otra). Esta relación es la más básica entre clases y comparada con los demás tipos de
relación, la más débil. Es una relación de uso, es decir que una clase utiliza a otra. Y si esta ultima se altera, la anterior se puede ver afectada.
En código se suelen traducir principalmente como las clases donde se hace la instanciación de un objeto. En nuestro ejemplo l a clase viaje realiza los new de
los distintos objetos. En este momento puede que te preguntes como puede hacer un new de una clase abstracta, jeje. No realiz a los new de la clase
abstracta, si no de sus hijas. Seria algo así como
MedioDeTransporte medio = new Auto();
También se sostiene que este tipo de relación hace referencias, a los parámetros que se pasan en un método, bajo este concept o, en java, podría ser algo
así como:
public void crearViaje(MedioDeTransporte medio) {}
Por ultimo también se sostiene que podemos codificar esta relación realizando un return del tipo de dato en algún método.
Representación UML
Se representa con una flecha discontinua que parte desde una clase y apunta a otra. El sentido de la flecha nos indica quien usa a quien.
Interpretación
Implementación
Traduciendo a código:
class Impresora {
Traduciendo a código:
public Impresora() {
Class Documento {
private String texto; }
Definición: Es una relación uni direccional de estructura entre clases en la que una entidad se construye a partir de otra u otras. Se representa con una flecha continua qu e
parte desde una clase y apunta a otra. El sentido de la flecha nos indica la clase que se compone (base de la flecha) y sus c omponentes (punta de la flecha).
Representación UML
Interpretación
Esto significa que la ClaseA tendrá como atributo un objeto o instancia de la ClaseB (su componente). La ClaseA podrá acceder a las funcionalidades o atributos de su
componente usando sus métodos.
Implementación
Representación UML
Se representa con una flecha que parte de una clase a otra en cuya base hay un rombo de color blanco.
Interpretación
La forma de traducir ambos tipos de relación a código es tener un atributo en la clase compuesta donde almacenaremos una colección
de los objetos que la componen. Dependiendo del lenguaje podremos utilizar diferentes estructuras de datos que nos permitan almacenar
la colección de objetos, aunque generalmente se utilizan arreglos para este fin. Además, debemos de proporcionar un método para agregar
elementos a la colección.
Implementación
Traduciendo a código:
class Agenda
{
Traduciendo a código: private Contactos contactos[];
En funcionamiento
/* Creamos una instancia de Agenda */
$miAgenda = new Agenda();
Definición: Similar a la relación de Agregación solo que la Composición es una relación mas fuerte. Aporta documentación conceptual ya que es una "relación
de vida", es decir, el tiempo de vida de un objeto está condicionado por el tiempo de vida del objeto que lo incluye.
Representación: Se representa con una flecha que parte de una clase a otra en cuya base hay un rombo de color negro.
Interpretación
Implementación
REALIZACIÓN (Interface)
Definición: Es una relación de contrato con otra clase. Se la utiliza para implementar una interfaz. En lenguajes como java o php utilizamos la
palabra reservada implements, pero en C# se implementa igual que la herencia.
Traduciendo a Código en Java
Traduciendo a Código en C#
public interface ICascador {
public void cascarNueces();
}
class Zapato:ICascador {
private int talla;
private String color;
public void cascarNueces() {
System.out.println("Crick Crack");
}
}