- Factory Pattern - provides an interface for creating objects but allows subclasses to alter the type of objects that will be created.
- Singleton Pattern - ensures a class has only one instance and provides a global point of access to that instance.
- Adapter Pattern - allows objects with incompatible interfaces to work together.
- Facade Pattern - provides a unified interface to a set of interfaces in a subsystem.
- Decorator Pattern - allows the behavior of an object to be extended dynamically, without the need to change its source code.
- Command Pattern - encapsulating all the data related to command in one object.
- Observer Pattern - defines a one-to-many dependency between objects.