The Decorator Design Pattern in Swift
Add to it!
Difficulty: Beginner | Easy | Normal| Challenging
This article has been developed using Xcode 11.5, and Swift 5.2.4
Prerequisites:
- You will be expected to be aware of how to make a Single View Application in Swift.
Terminology:
Design Pattern: a general, reusable solution to a commonly occurring problem
Rather than subclassing (which follows from the principle that we should favour composition over inheritance)
The Decorator Design Pattern in Swift
Essentially decorators act as a middle man, intercepting calls to a core object and providing customised behaviour to the client.
This means the design pattern is useful if
- The core object needs to be wrapped for the purpose of testing
- The core object cannot be modified directly
The Detail
The decorator allows adding behaviour and responsibility to an object without modifying code. This is commonly implemented in Swift, and when used clients are not aware if they are using a decorator or core object to access functionality.