The files in this repository are based on the material and exercises from the Udemy course, Design Patterns in Java by Dmitri Nesteruk.
- Single Responsibility Principle (SRP)
- Open-Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Cloneables example - avoid this
- Copy Constructors
- Copy Through Serialization
- Exercise for this section
- Basic Singleton
- Static Block Singleton
- Lazy Singleton / Inner Static Singleton
- Enum Based Singleton
- Monostate
- Multiton
- Singleton Testability Problems
- Exercise for this section
- String class Decorator
- Dynamic Decorator
- Static Decorator
- Adapter-Decorator
- Exercise for this section
- Tree Traversal (using Iterable and Iterator interfaces)
- Array-Backed Properties
- Exercise for this section
- Observer and Observable
- Event Class Approach
- Exercise for this section
- Instructor solution to exercise