extension

Diseño de Software

El diseño del software se basa en comenzar a codificar con un plan (en lugar de comenzar escribiendo código). Trata de conducir a la perfección la creación del sistema. Un buen diseño genera un software robusto, con buenos atributos de calidad y preparado para el futuro.


Principios SOLID

Los principios SOLID son guías para el desarrollo de software con la intención de crear un software de calidad, aplicando buenas prácticas, para eliminar malos diseños que llevan a un software caótico, difícil de mantener.

Single Responsability

Una clase debe tener una, y solo una, razón para cambiar, o sea, encapsular la responsabilidad.

Ver Artículo

Open Closed

Las entidades de software deben estar abiertas para su extensión y cerradas para su modificación.

Ver Artículo

Liskov Substitution

Los objetos de una superclase deberían ser reemplazables con objetos de sus subclases.

Ver Artículo

Interface Segregation

Ningún cliente debería verse forzado a depender de métodos que no utiliza.

Ver Artículo

Dependency Inversion

Los módulos de alto nivel no deberían depender de módulos de bajo nivel.

Ver Artículo


Patrones de Diseño

Representan soluciones a problemas comunes, aplicables a diferentes problemas de diseño en distintas circunstancias. Se categorizan según su propósito: Creacionales, Estructurales y de Comportamiento.

Creacionales

Definen la manera de crear un objeto. Abstraen los detalles de la creación, ayuda a crear un sistema independiente de cómo se crean, se componen y se representan los objetos.

Abstract Factory

El Abstract Factory define una interfaz para crear una familia de objetos relacionados o que dependen entre sí, sin especificar...

Ver Artículo

Builder

El Builder separa la construcción de un objeto complejo de su representación, de forma que el mismo proceso...

Ver Artículo

Factory Method

El Factory Method define una interfaz para crear un objeto, pero deja que las subclases decidan qué clase instanciar...

Ver Artículo

Prototype

El Prototype permite la creación de nuevos objetos clonando un objeto existente, conocido como el prototipo, evitando...

Ver Artículo

Singleton

El patrón Singleton garantiza que una clase sólo tenga una instancia, y proporciona un punto de acceso global a la misma...

Ver Artículo

Estructurales

Se centran en la forma de combinar las clases y los objetos para formar estructuras más grandes, y así poder resolver problemas complejos.

Adapter

El patrón Adapter convierte la interfaz de una clase en otra, que es la que esperan los clientes. Permite que clases con interfaces...

Ver Artículo

Bridge

El patrón Bridge tiene como objetivo desacoplar una abstracción de su implementación, de manera que ambas...

Ver Artículo

Composite

El patrón Composite es un patrón de diseño estructural que permite componer objetos en estructuras de árbol para...

Ver Artículo

Decorator

El patrón Decorator permite agregar responsabilidades adicionales a un objeto de manera dinámica, en tiempo de ejecución...

Ver Artículo

Facade

El patrón Facade (Fachada) proporciona una interfaz unificada y simplificada a un conjunto de interfaces en un subsistema.

Ver Artículo

Flyweight

El patrón Flyweight (Peso ligero) se basa en la idea de compartir objetos que se repiten, en vez de crear una nueva instancia de...

Ver Artículo

Proxy

El patrón Proxy brinda un sustituto de un objeto, con el propósito de controlar el acceso, posponer su creación...

Ver Artículo

Comportamiento

Los patrones de comportamiento tienen que ver con algoritmos y con la asignación de responsabilidades a objetos.

Chain of Responsabity

El patrón Chain of Responsibility (Cadena de Responsabilidad) desacopla al emisor de una solicitud de su receptor, permitiendo...

Ver Artículo

Command

El patrón Command (comando, orden) encapsula una petición en un objeto. Esto permite parametrizar métodos...

Ver Artículo

Interpreter

El patrón Interpreter (Intérprete) proporciona una manera de evaluar sentencias en un lenguaje, permitiendo...

Ver Artículo

Iterator

El patrón Iterator (Iterador) brinda una manera de acceder a los elementos de un objeto agregado de forma secuencial, sin...

Ver Artículo

Mediator

El patrón Mediator (Mediador) tiene como objetivo reducir la complejidad de las comunicaciones entre múltiples objetos o clases...

Ver Artículo

Memento

El patrón Memento captura y almacena el estado actual de un objeto, para poder restaurarlo a ese estado, sin exponer los detalles...

Ver Artículo

Observer

El patrón Observer (Observador) establece una suscripción en la que los objetos pueden observar, y ser notificados...

Ver Artículo

State

El patrón State permite a un objeto alterar su comportamiento cuando su estado interno cambia...

Ver Artículo

Strategy

El patrón Strategy define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Permite que el algoritmo...

Ver Artículo

Template Method

El patrón Template Method (Método Plantilla) define el esqueleto de un algoritmo, dejando algunos pasos a las subclases, que redefinen...

Ver Artículo

Visitor

El patrón Visitor (Visitante) permite agregar nuevas operaciones sobre una estructura de objetos, sin cambiar...

Ver Artículo