December 2018
Intermediate to advanced
414 pages
10h 19m
English
The final pattern, Ambient Context, is similar to the Singleton.
We still have a single instance as a static variable, but the class has multiple subclasses with different behaviors, and each static variable is writeable with a static function:
class Analytics { static private(set) var instance: Analytics = NoAnalytics() static func setAnaylics(analitics: Analytics) { self.instance = analitics } func track(event: Event) { fatalError("Implement in a subclass") }}class NoAnalytics: Analytics { override func track(event: Event) {}}class GoogleAnalytics: Analytics { override func track(event: Event) { //... }}class AdobeAnalytics: Analytics { override func track(event: Event) { //... }}struct Event { //...}
This pattern should ...
Read now
Unlock full access