La lógica de negocio es el conjunto de reglas, procesos, operaciones y decisiones que traducen la forma en que una organización funciona hacia el software. Representa cómo se ejecutan las actividades principales de un sistema según los objetivos del negocio, y se convierte en código dentro de la aplicación.
Importancia
- Define cómo se hacen las cosas en función de las reglas y políticas de la organización.
- Controla la toma de decisiones del sistema.
- Mantiene la consistencia en las operaciones.
- Separa responsabilidades, evitando mezclar la lógica de negocio con la lógica de presentación o de datos.
Componentes
-
Reglas del negocio: Definen qué está permitido y qué no. Ejemplo: un pedido no puede confirmarse si no tiene artículos.
-
Procesos del negocio: Describen los pasos que deben seguirse. Ejemplo: calcular el total de un pedido → aplicar impuestos → generar factura.
-
Decisiones del negocio: Determinan qué hacer según las reglas. Ejemplo: si el cliente es VIP, aplicar un 10% de descuento.
¿Para qué sirve?
- Asegura que el software respete las reglas del negocio.
- Favorece la separación de responsabilidades entre capas.
- Facilita el mantenimiento y escalabilidad del sistema.
- Permite que la lógica de presentación y de acceso a datos se adapten sin alterar el núcleo del negocio.
¿Cómo funciona?
- Entrada: recibe datos desde la interfaz o el sistema externo.
- Procesamiento: aplica las reglas de negocio.
- Salida: genera resultados útiles para el negocio.
Analogía
La lógica de negocio es como el árbitro en un juego:
- Define qué movimientos son válidos (reglas).
- Decide cómo se desarrolla la partida (procesos).
- Dicta qué hacer ante cada situación (decisiones). Sin el árbitro, los jugadores podrían actuar sin control y el juego perdería sentido.
Relación con Patrones
En diseño con patrones, la lógica de negocio suele residir en la capa de dominio, aplicando principios como:
- SRP (Single Responsibility): separar reglas del negocio de la presentación.
- Strategy: definir reglas intercambiables de decisión.
- Factory: encapsular procesos de creación de objetos del negocio.
- Service Layer: centralizar la lógica de negocio en servicios reutilizables.