Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<<<<<<< HEAD

🤝 Patrones de Comportamiento en TypeScript

"Gestionar algoritmos, responsabilidades y comunicación entre objetos"

📋 ¿Qué son los Patrones de Comportamiento?

Los patrones de comportamiento se centran en la comunicación efectiva y la asignación de responsabilidades entre objetos, definiendo cómo interactúan y se distribuyen las tareas.

🎯 Patrones Implementados

1. Chain of Responsibility (src/chain-of-responsibility/)

Propósito: Evitar acoplar el emisor de una petición a su receptor dando a más de un objeto la oportunidad de manejar la petición.

// Ejemplo: Middleware pipeline
interface Handler {
  setNext(handler: Handler): Handler;
  handle(request: string): string | null;
}

abstract class Middleware implements Handler {
  private nextHandler: Handler | null = null;
  
  setNext(handler: Handler): Handler {
    this.nextHandler = handler;
    return handler;
  }
  
  handle(request: string): string | null {
    if (this.nextHandler) {
      return this.nextHandler.handle(request);
    }
    return null;
  }
}

class AuthMiddleware extends Middleware {
  handle(request: string): string | null {
    if (request.includes("token=")) {
      console.log("Autenticación exitosa");
      return super.handle(request);
    }
    return "Error de autenticación";
  }
}
=======
# 🏗️ Patrones Creacionales en TypeScript

> *"No preguntes por el objeto, deja que venga a ti"* - Principio de Inversión de Dependencias

## 📋 ¿Qué son los Patrones Creacionales?

Los **patrones creacionales** abstraen el proceso de creación de objetos, haciendo que el sistema sea independiente de cómo sus objetos son creados, compuestos y representados.

## 🎯 Patrones Implementados

### 1. **Factory Method** (`src/factory-method/`)

**Propósito:** Definir una interfaz para crear un objeto, pero dejar que las subclases decidan qué clase instanciar.

```typescript
// Ejemplo: Sistema de notificaciones
interface Notificador {
  enviar(mensaje: string): void;
}

class EmailNotificador implements Notificador {
  enviar(mensaje: string): void {
    console.log(`Enviando email: ${mensaje}`);
  }
}

abstract class CreadorNotificacion {
  public abstract factoryMethod(): Notificador;
  
  public enviarNotificacion(mensaje: string): void {
    const notificador = this.factoryMethod();
    notificador.enviar(mensaje);
  }
}

>>>>>>> 3af9356158b9459e8a343b8dfdc3d86e0540fe27

About

Este repositorio es donde estarán todos los patrones de diseño

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages