· 1 min learn
The manufacturing unit technique design sample is a devoted non-static technique for hiding the creation logic of an object. Let’s make it in Swift!
Manufacturing facility technique is only a non-static technique
Let’s face it, this sample is only a technique often backed by easy protocols & courses. Begin with a very easy instance: think about a category that may create a base URL on your service endpoint. Let’s name it service manufacturing unit. 😅
class ServiceFactory {
func createProductionUrl() -> URL {
return URL(string: "https://localhost/")!
}
}
let manufacturing unit = ServiceFactory()
manufacturing unit.createProductionUrl()
You would possibly assume, that hey, this isn’t even near a manufacturing unit technique sample, however watch for it… let’s make issues a little bit bit sophisticated by making a protocol for the service class and a protocol for returning the URL as effectively. Now we will implement our base manufacturing URL protocol as a separate class and return that particular occasion from a manufacturing service manufacturing unit class. Simply test the code you’ll get it:
protocol ServiceFactory {
func create() -> Service
}
protocol Service {
var url: URL { get }
}
class ProductionService: Service {
var url: URL { return URL(string: "https://localhost/")! }
}
class ProductionServiceFactory: ServiceFactory {
func create() -> Service {
return ProductionService()
}
}
let manufacturing unit = ProductionServiceFactory()
let request = manufacturing unit.create()
Why did we separated all of the logic into two courses and protocols? Please imagine me decoupling is an efficient factor. To any extent further you may simply write a mocked service with a dummy URL to mess around with. Clearly that’d want an identical manufacturing unit class.
These mock situations would additionally implement the service protocols so you may add new varieties in a comparatively painless approach with out altering the unique codebase. The manufacturing unit technique solves one particular downside of a easy manufacturing unit sample. If the listing – contained in the switch-case – turns into too lengthy, sustaining new objects will probably be hell with only one manufacturing unit. Manufacturing facility technique solves this by introducing a number of manufacturing unit objects.
Associated posts
On this article I’m going to point out you how you can implement a primary occasion processing system on your modular Swift utility.
Be taught the iterator design sample through the use of some customized sequences, conforming to the IteratorProtocol from the Swift customary library.
Discover ways to use lazy properties in Swift to enhance efficiency, keep away from optionals or simply to make the init course of extra clear.
Newbie’s information about optics in Swift. Discover ways to use lenses and prisms to control objects utilizing a practical method.