Slide 26
Slide 26 text
#MerpayTechFest
MerpaySceneFactory
NFC Coupon
QR
Dependency Injection
Merpay
Feature
Core
Shared
public protocol MerpaySceneFactoryType {
func viewController(for scene: MerpayScene,
dependency: Dependency) -> UIViewController?
}
public class MerpaySceneFactory: MerpaySceneFactoryType {
private var factories: [MerpaySceneFactoryType] = []
public func register(factory: MerpaySceneFactoryType)
{
factories.append(factory)
}
public func viewController(for scene: MerpayScene,
dependency: Dependency) -> UIViewController? {
for factory in factories {
if let viewController =
factory.viewController(
for: scene, dependency: dependency) {
return viewController
}
}
return nil
}
}