Skip to content

Latest commit

 

History

History
137 lines (91 loc) · 3.84 KB

basico.md

File metadata and controls

137 lines (91 loc) · 3.84 KB

UML : Básico

Estructura de una Clase

NombreDeLaClase
atributos
-------------------
métodos
  • NombreDeLaClase: Nombre de la clase, debe de ir en notación StudlyCaps, centrado y en negritas.
  • atributos: Lista de atributos, en notación camelCase.
  • métodos: Lista de Métodos, en notación camelCase.

Visibilidad

  • Pública: +.
  • Protegida: #.
  • Privada: -.

Estructura de Atributos

+ nombre: String
  • +: Visibilidad.
  • nombre: Nombre del atributo.
  • String: Tipo de variable.

Estructura de Métodos

+ agregarEntrada(nuevaEntrada : BlogEntrada, autor : Autor): void
  • +: Visibilidad.
  • agregarEntrada: Nombre del método.
  • (): Paréntesis para parámetros.
    • nuevaEntrada: Nombre del primer parámetro.
    • BlogEntrada: Tipo de valor del parámetro.
  • void: Valor de retorno.

Métodos o Atributos

Los Métodos o Atributos estáticos deben estar subrayados. Los Métodos o Atributos abstractos deben estar en itálica. Incluso el nombre de la Clase debe estar en itálica de ser una clase abstracta.

Relacciones entre clases

Hay cinco tipos de relaciones:

  1. Dependencia: <--- Flecha con línea punteada.
  2. Asociación: <——— Línea solida normal.
  3. Agregación: <>——— Flecha con punta de diamante vacía.
  4. Composición: <>--- Flecha con punta de diamante rellena.
  5. Herencia: <|——— Flecha con punta de triangulo vacía.

Dependencia

Una dependencia es una relación de uso entre dos entidades, una usa a la otra. Es el tipo de relación más débil y básica entre clases. Se representa con una línea punteada y una flecha <---, que indica que clase depende de cual.

A ----> B
  • Aquí, la clase A depende de la clase B.
  • La clase A usa la clase B.
  • La clase A conoce la existencia de la clase B, pero la clase B no conoce la existencia de la clase A, (uso de la flecha).
  • Todo cambio que se haga en la clase B, por la relación que hay con la clase A, podrá afectar a la clase A.

También se le conoce como relación de uso, porque la clase A usa a la clase B.

class A
{
    public function ejecutar()
    {
        $b = new B();
    }
}

Asociación

Significa que una clase contendrá una referencia a un objeto, u objetos de la otra clase en forma de un atributo. Si te encuentras diciéndote que una clase trabaja con un objeto de otra clase, entonces la relación entre ellas será altamente candidata para un relación de asociación en lugar de una de una de dependencia.

Se representa con una línea solida <———y la flecha indica la Navegación que es aplicada para describir que clase contiene el atributo que soporta dicha relación.

A ———> B
class A
{
    private $_b;

    public function __construct()
    {
        $this->_b = new B();
    }
}

Agregación

La relación tipo agregación es una versión más fuerte de la de asociación, y es utilizada para indicar que clase posee pero puede compartir objetos de otra clase.

Es una relacción que en lugar de ser de '1 a 1' ahora es de '1 a muchos', la clase A agrega muchos elementos de la clase B.

A <>——— B

Su representación es una linea continua con un rombo vacío.

Composición

Similar a la de agregación, solo que además de agregar, ahora existe una relación de vida, donde elementos de B no pueden existir sin la relación de A.

A <>——— B

Su representación es una linea continua con un rombo relleno.

Herencia

A
^
|
B
class A
{

}

class B extends A
{

}