Creational Patterns
Builder
Separate the construction of a complex object from its representation so that the same construction process can create different representations.
Design Patters, GoF
Singleton
Ensure a class only has one instance, and provide a global point of access to it.
Design Patterns, GoF
Lazy
Postpone the creation of an object to a later point.
In Kotlin
Abstract Factory
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Design Patterns, GoF
Factory Method
Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.
Design Patterns, GoF
Behavioral patterns
Observer / Listener
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Design Patterns, GoF
Delegation / Delegator
Composition instead of large Inheritance chains.
In Kotlin
Strategy
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
Design Patterns, GoF
State
Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.
Design Patterns, GoF