Swift summary manufacturing facility design sample


Summary manufacturing facility in Swift

The summary manufacturing facility sample gives a method to encapsulate a bunch of particular person factories which have a typical theme with out specifying their concrete lessons.

So summary manufacturing facility is there so that you can create households of associated objects. The implementation normally combines easy manufacturing facility & manufacturing facility technique rules. Particular person objects are created by way of manufacturing facility strategies, whereas the entire thing is wrapped in an “summary” easy manufacturing facility. Now test the code! 😅


protocol ServiceFactory {
    func create() -> Service
}

protocol Service {
    var url: URL { get }
}


class StagingService: Service {
    var url: URL { return URL(string: "https://dev.localhost/")! }
}

class StagingServiceFactory: ServiceFactory {
    func create() -> Service {
        return StagingService()
    }
}


class ProductionService: Service {
    var url: URL { return URL(string: "https://reside.localhost/")! }
}

class ProductionServiceFactory: ServiceFactory {
    func create() -> Service {
        return ProductionService()
    }
}


class AppServiceFactory: ServiceFactory {

    enum Setting {
        case manufacturing
        case staging
    }

    var env: Setting

    init(env: Setting) {
        self.env = env
    }

    func create() -> Service {
        change self.env {
        case .manufacturing:
            return ProductionServiceFactory().create()
        case .staging:
            return StagingServiceFactory().create()
        }
    }
}

let manufacturing facility = AppServiceFactory(env: .manufacturing)
let service = manufacturing facility.create()
print(service.url)

As you may see utilizing an summary manufacturing facility will affect the entire utility logic, whereas manufacturing facility strategies have results solely on native components. Implementation can fluctuate for instance you can additionally create a standalone protocol for the summary manufacturing facility, however on this instance I wished to maintain issues so simple as I may.

Summary factories are sometimes used to realize object independence. For instance when you’ve got a number of totally different SQL database connectors (PostgreSQL, MySQL, and so on.) written in Swift with a typical interface, you can simply change between them anytime utilizing this sample. Identical logic may very well be utilized for something with an analogous state of affairs. 🤔

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles