Introduction
  • Introduction
SOLID Design Principles
  • Overview
  • Single Responsibility Principle (SRP)
  • Open-Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)
  • Summary
Builder
  • Gamma Categorization
  • Overview
  • Builders in Java
  • Builder
  • Fluent Builder
  • Fluent Builder Inheritance with Recursive Generics
  • Faceted Builder
  • Builder Coding Exercise
  • Summary
Factories
  • Overview
  • Factory Method
  • Factory
  • Abstract Factory
  • Factory Coding Exercise
  • Summary
Prototype
  • Overview
  • Don't Use Cloneable
  • Copy Constructors
  • Copy Through Serialization
  • Prototype Coding Exercise
  • Summary
Singleton
  • Overview
  • Basic Singleton
  • Serialization Problems
  • Static Block Singleton
  • Laziness and Thread Safety
  • Inner Static Singleton
  • Enum Based Singleton
  • Monostate
  • Multiton
  • Testability Issues
  • Singleton in Dependency Injection
  • Singleton Coding Exercise
  • Summary
Adapter
  • Overview
  • Vector/Raster Demo
  • Adapter Caching
  • Adapter Coding Exercise
  • Summary
Bridge
  • Overview
  • Bridge
  • Bridge Coding Exercise
  • Summary
Composite
  • Overview
  • Geometric Shapes
  • Neural Networks
  • Composite Coding Exercise
  • Summary
Decorator
  • Overview
  • String Decorator
  • Dynamic Decorator Composition
  • Static Decorator Composition
  • Adapter-Decorator
  • Decorator Coding Exercise
  • Summary
Façade
  • Overview
  • Façade
  • Summary
Flyweight
  • Overview
  • Repeating User Names
  • Text Formatting
  • Flyweight Coding Exercise
  • Summary
Proxy
  • Overview
  • Protection Proxy
  • Property Proxy
  • Dynamic Proxy for Logging
  • Proxy vs. Decorator
  • Proxy Coding Exercise
  • Summary
Chain of Responsibility
  • Overview
  • Method Chain
  • Command Query Separation
  • Broker Chain
  • Chain of Responsibility Coding Exercise
  • Summary
Command
  • Overview