When all of the patterns get used I will rename the project to reflect the
fact that it has turned into an OOP heap.
Pattern
|
Where is it used?
|
Abstract factory
|
Not used.
|
Builder
|
Not used.
|
Factory method
|
Used all over the place.
|
Prototype
|
Used in the level editor for objects. Some objects can be cloned.
|
Singleton
|
PoolProxy class is used to force a single Pool template
instantiation per type.
|
Adapter
|
There's probably some adapters in there, but can't remember a
specific example.
|
Bridge
|
Definitely somewhere in there.
|
Composite
|
Used for level editor objects.
|
Decorator
|
Used for scripting API.
|
Facade
|
Used for the file abstraction.
|
Flyweight
|
Dynamically created collisionshapes use the same underlying object
if their types and dimensions are the same.
|
Proxy
|
Used by some resources.
|
Chain of responsiblity
|
Not used.
|
Command
|
Messages are essentially commands.
|
Interpreter
|
Used by the quest extension for nocode scripting.
|
Iterator
|
Used all over the place.
|
Mediator
|
Not used.
|
Memento
|
Used for undo/redo functionality in the level editor.
|
Observer
|
Event listeners are essentially observers.
|
State
|
Used for tools in the level editor.
|
Strategy
|
Used by the file abstraction.
|
Template method
|
Used by resources, entities and entity components for their life
cycles and stuff.
|
Visitor
|
Probably used somewhere in there.
|