Training Agenda

Design Patterns
(GoF)

The 23 Gang of Four design patterns are the shared vocabulary of object-oriented software design — patterns that solve recurring structural and behavioral problems in ways that experienced developers recognize immediately. But patterns are tools, not destinations: knowing when to apply them, when to avoid them, and how they appear in the frameworks you already use makes the difference between pattern literacy and pattern cargo-culting. This training covers the most practically relevant GoF patterns through Java examples and real framework internals.

1–2 days On-site, remote, or hybrid Up to 20 participants German or English
What We Cover
Structural solutions every developer should recognize
Day 1

Creational & Structural Patterns

  • Creational patterns: Factory Method, Abstract Factory, Builder, Singleton (and why it's often wrong), Prototype
  • Builder in practice: immutable objects, fluent APIs, Lombok @Builder
  • Factory patterns in Spring: BeanFactory, FactoryBean, @Bean methods
  • Structural patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
  • Decorator in Spring: AOP proxies, transaction and security interceptors
  • Facade in practice: service layer hiding complex subsystems
  • Proxy patterns: JDK dynamic proxies vs CGLIB — how Spring AOP works
  • Adapter pattern: integrating third-party APIs with internal interfaces
Day 2

Behavioral Patterns & Anti-Patterns

  • Behavioral patterns: Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
  • Strategy pattern: replacing conditionals with polymorphism
  • Observer in Spring: ApplicationEventPublisher, @EventListener
  • Template Method: Spring's JdbcTemplate, RestTemplate — the pattern they use
  • Command pattern: undoable operations, request queuing
  • State machine patterns: Spring State Machine, explicit state vs if-else
  • Pattern combinations: real-world examples where multiple patterns work together
  • Anti-patterns: God Object, Anemic Domain Model, Golden Hammer — recognizing over-engineering
  • Refactoring to patterns: identifying where patterns improve existing code
Learning Outcomes
What your team walks away with

Developers who recognize design patterns in the frameworks they use daily, apply them deliberately when the fit is clear, and avoid them when simpler code is better.

Book the Design Patterns training

Well suited for mid-level Java developers building a stronger object-oriented design foundation. Works as a standalone day or before the Clean Code training.

Get in touch