Nontrivial examples of the design patterns discussed from the book "Design Patterns: Elements of Reusable Object-Oriented Software". The examples aims to apply the patterns in a feasible scenario, which adds additional complexity to it. The goal of the examples is not to explain the concept of the design patterns but rather show how it is applied in a practical scenario.
The list below shows the scenarios where the design patterns were applied.
- Abstract Factory - Maze game generator (obligatory)
- Builder - Broker configuration builder
- Factory Method - Aggregate repository factory
- Prototype - Membership price/discount giver
- Singleton - Algorithm options caching and Collection seeder
- Adapter - Message serializer/broacaster hook
- Bridge - Repository persistence implementation
- Composite - Credit/Loan account branching
- Decorator - Operation exception logger
- Facade - NgRx implementation excerpt
- Flyweight - Character(Glyph) styler
- Proxy - Operation result caching
- Command - Cart/Ordering command handlers
- Interpreter - IP mask decoder
- Iterator - Bank account balance secure traverser
- Mediator - MediatR implementation excerpt
- Memento - Redux.js implementation excerpt
- Observer - INotifyPropertyChange(MVVM) implementation excerpt
- Pipeline - Message parser
- State - LidState(WasteMan) validator
- Strategy - String sanitizer
- Template - Cache allocation techniques
- Visitor - Azure Functions binding implementation excerpt
Yeet a Pull Request