¿Listo para dominar la API de WhatsApp?
Empieza gratis hoy en WhatzMeApi.com 🚀

1) Conceptos clave

  • Encapsulamiento: estado privado, métodos públicos.
  • Abstracción: define qué hace, no cómo.
  • Herencia: úsala poco; prefiere composición.
  • Polimorfismo: interfaces para variar comportamientos.

2) Modela bien el dominio

  • Entidad: identidad estable (id).
  • Value Object: por valor, inmutable (usa record).
public record Money(BigDecimal amount, Currency currency) {
  public Money {
    if (amount.signum() < 0) throw new IllegalArgumentException();
  }
}

3) Ejemplo mínimo con estrategia (polimorfismo)

interface DiscountPolicy { Money apply(Money total); }

final class PercentageDiscount implements DiscountPolicy {
  private final BigDecimal pct; // 0..1
  PercentageDiscount(BigDecimal pct){ this.pct=pct; }
  public Money apply(Money t){ return new Money(t.amount().multiply(BigDecimal.ONE.subtract(pct)), t.currency()); }
}

final class NoDiscount implements DiscountPolicy {
  public Money apply(Money t){ return t; }
}

Cambias la regla creando otra clase que implemente DiscountPolicy sin tocar el resto del código.

💼 Empleos tech relacionados:

3,326 vacantes activas en LATAM · ver todas → · ⭐ Opiniones en Google

🎓 Cursos confirmados con 50% OFF hoy para lectores del blog:

Por WhatsApp en horario habil · ver todos los cursos → · ⭐ Opiniones en Google

Obtén descuentos exclusivos de nuestros cursos en vivo en línea

Capacítate con los expertos

4) Principios que sí importan

  • SRP: una clase, un motivo de cambio.
  • OCP: agrega reglas nuevas sin editar las existentes.
  • DIP: depende de interfaces; inyecta implementaciones.

5) Antipatrones a evitar

  • Anemic Model: objetos con solo getters/setters.
  • God Object: una clase que hace todo.
  • Herencia por defecto: usa composición primero.

6) Checklist para tu próximo PR

  • ¿Usaste interfaces para reglas que cambian?
  • ¿Value Objects inmutables donde aplica?
  • ¿Clases con una responsabilidad?
  • ¿Tests unitarios del dominio (sin levantar Spring)?

7) Plan en 3 pasos

  1. Identifica una regla variable (p. ej., descuento).
  2. Extrae interfaz + 2 estrategias (NoDiscount, PercentageDiscount).
  3. Crea 3 tests de dominio que validen el comportamiento.

¿Listo para dominar la API de WhatsApp?
Empieza gratis hoy en WhatzMeApi.com 🚀

💼 Empleos tech relacionados:

3,326 vacantes activas en LATAM · ver todas → · ⭐ Opiniones en Google

About Author

Giss Trejo

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
La mas nueva
Más antiguo Más votada
0
¿Te gusta este articulo? por favor comentax