| Singleton | Creational | One instance, global access | HikariCP, Logger | @Bean default scope |
| Factory Method | Creational | Subclass decides which class to create | PaymentProcessor selection | FactoryBean<T>, @ConditionalOn |
| Abstract Factory | Creational | Family of related objects | Email+SMS+Push per environment | @Profile @Configuration |
| Builder | Creational | Construct complex objects step by step | CreateOrderRequest.builder() | @Builder, ResponseEntity.ok().body() |
| Prototype | Creational | Clone existing instead of new | EmailTemplate registry + clone | @Scope("prototype") |
| Adapter | Structural | Make incompatible interfaces work together | SoapPaymentAdapter | HandlerAdapter, HttpMessageConverter |
| Decorator | Structural | Add behavior dynamically to same interface | LoggingOrderService chain | @Transactional, @Cacheable, AOP |
| Facade | Structural | Simplified interface to complex subsystem | OrderFacade → 5 services | JdbcTemplate, SLF4J, ApplicationContext |
| Proxy | Structural | Control access to another object | Spring AOP CGLIB proxy | AOP, Spring Data, Feign clients |
| Composite | Structural | Tree structure — leaf and branch treated same | Permission AND/OR tree | Spring Security RoleHierarchy |
| Bridge | Structural | Decouple abstraction from implementation | Notification × Channel (no subclass explosion) | JDBC DriverManager, SLF4J, DataSource |
| Flyweight | Structural | Share intrinsic state across many objects | CategoryFlyweight pool | String pool, Integer cache, Hibernate L2C |
| Observer | Behavioral | Notify all dependents on state change | OrderPlacedEvent + 4 listeners | @EventListener, @TransactionalEventListener |
| Strategy | Behavioral | Interchangeable algorithms at runtime | DiscountStrategy (seasonal/loyalty/bulk) | Comparator, AuthenticationProvider, RetryPolicy |
| Template Method | Behavioral | Algorithm skeleton in base, steps in subclasses | DataExporter — fetchData+format | JdbcTemplate, AbstractController, Spring Batch |
| Command | Behavioral | Encapsulate request as object (undo/queue) | CartCommand with undo/redo stack | Spring Batch Step, Kafka messages, Runnable |
| Chain of Resp. | Behavioral | Pass request along handler chain | Auth→RateLimit→Authz→Logic chain | Spring Security filters, HandlerInterceptor |
| State | Behavioral | Behavior changes with internal state | Order DRAFT→CONFIRMED→PAID→SHIPPED | Resilience4j CB, Spring Statemachine |
| Iterator | Behavioral | Sequential access without exposing structure | DateRangeIterator, fail-fast/safe | Collections, Stream API, Spring Batch ItemReader |
| Mediator | Behavioral | Central hub for object communication | ChatRoom mediating between users | DispatcherServlet, WebSocket broker |
| Memento | Behavioral | Save/restore object state without breaking encapsulation | OrderDraft snapshot history | Spring Batch ExecutionContext, Hibernate dirty check |
| Visitor | Behavioral | New operation on hierarchy without modifying classes | TaxVisitor + JsonExportVisitor on same elements | Jackson serializers, Files.walkFileTree, JPA Criteria |
| Interpreter | Behavioral | Grammar + interpreter for simple language | Discount rule DSL (AND/OR/NOT) | Spring SpEL, @PreAuthorize, JPQL, Thymeleaf |