GoF Design Patterns
Gangs of Four Design Patterns
Creational Pattern
These patterns are designed for class instantiation. They can be either class-creational patterns or object-creational patterns.
Factory Method
The Factory method offers an interface for creating an instance of a class, with its subclasses deciding which class to instantiate.
Object Pooling
Object pooling is a software creational design pattern that recycles objects rather than recreating them. It does that by holding selected objects in a pool ready for use when they are requested by an application.
This process helps to improve performance by minimizing unnecessary object creation.
Unity's ObjectPool class can be used, or custom pool managers can be implemented.
Singleton
The patterns main objective is to create only one instance of a class and to provide only one global access point to that object.
With this description, this design pattern perfectly fits in the category of the Creational Design Patterns, because at the end, we are creating an object, with only a single instance.
First, Singletons should always be a sealed in order to prevent class inheritance, which could end up with multiple instances which contradicts the purpose of Singleton.
Second, the constructor must also be private to prevent creating new instances.
Disadvantages
a.k.a. Anti-Pattern, because it can interfere with the unit testing and is inflexible.
Structural Pattern
These patterns are designed with regard to a class's structure and composition. The main goal pf most of these patterns is to increase the functionality of the class(es) involved, without changing much of its composition.
Behavioral Pattern
These patterns are designed depending on how one class communicates with others.
Command
The command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time. This information includes the method name, the object that owns the method, and values for the method parameters.
Observer
The Observer pattern allows an object (the subject) to notify its dependents (observers) of changes, typically through events or delegates.
In Unity, this pattern is frequently used for event handling, UI updates, and inter-component communication.
State
State is a behavioral design pattern that lets an object alter its behavior when its internal state changes. It appears as if the object changed its class.
Unity's Animator Controller provides a visual interface for creating state machines for character animations, but you can also implement custom state machines for game logic.
Last updated