Apply these patterns when designing or refactoring code for modularity, extensibility, and decoupling.
| Hard-coded dependencies | DI, IoC, Service Locator, SAM | | Need runtime extensions | Plugin, Microkernel, Extension Points | | Swappable algorithms | Strategy, Abstract Factory | | Additive behavior | Decorator, Chain of Responsibility, SAM | | Feature coupling | Package by Feature | | Scattered concerns | AOP, Interceptors, Mixins, SAM |
| Temporal coupling | Observer, Event Bus, Event Sourcing, SAM | | Read/write optimization | CQRS | | Deployment flexibility | Feature Toggles, Microservices |
Рекомендует шаблоны модульности, композиции и разделения для решения задач проектирования. Используйте при проектировании архитектуры плагинов, уменьшении связанности, улучшении тестируемости или разделении сквозных проблем. Источник: jdubray/puffin.