Evaluating manufacturing unit design patterns – The.Swift.Dev.

Evaluating manufacturing unit design patterns – The.Swift.Dev.



· 1 min learn


Be taught what is the distinction between static manufacturing unit, easy manufacturing unit, manufacturing unit technique and summary manufacturing unit utilizing the Swift language.

I assumed that I’d be good to have a summarized comparability between all of the manufacturing unit patterns, so right here it’s every thing that it is best to learn about them. Setting up them is comparatively simple, on this instance I’m going to make use of some UIColor magic written within the Swift programming language to indicate you the fundamentals. 🧙‍♂️

Static manufacturing unit

  • no separate manufacturing unit class
  • named static technique to initialize objects
  • can have cache & can return subtypes
extension UIColor {
    static var main: UIColor { return .black }
    static var secondary: UIColor { return .white }
}

let main = UIColor.main
let secondary = UIColor.secondary

Easy manufacturing unit

  • one manufacturing unit class
  • change case objects within it
  • encapsulates various code
  • if record is simply too large use manufacturing unit technique as an alternative
class ColorFactory {
    enum Model {
        case main
        case secondary
    }

    func create(_ type: Model) {
        change type
        case .main:
            return .black
        case .secondary:
            return .white
    }
}
let manufacturing unit = ColorFactory()
let main = manufacturing unit.create(.main)
let secondary = manufacturing unit.create(.secondary)

Manufacturing unit technique

  • a number of (decoupled) manufacturing unit courses
  • per-instance manufacturing unit technique
  • create a easy protocol for manufacturing unit
protocol ColorFactory {
    func create() -> UIColor
}

class PrimaryColorFactory: ColorFactory {
    func create() -> UIColor {
        return .black
    }
}

class SecondaryColorFactory: ColorFactory {
    func create() -> UIColor {
        return .white
    }
}

let primaryColorFactory = PrimaryColorFactory()
let secondaryColorFactory = SecondaryColorFactory()
let main = primaryColorFactory.create()
let secondary = secondaryColorFactory.create()

Summary manufacturing unit

  • combines easy manufacturing unit with manufacturing unit technique
  • has a worldwide impact on the entire app
// very same manufacturing unit technique sample from above
protocol ColorFactory {
    func create() -> UIColor
}

class PrimaryColorFactory: ColorFactory {
    func create() -> UIColor {
        return .black
    }
}

class SecondaryColorFactory: ColorFactory {
    func create() -> UIColor {
        return .white
    }
}

// easy manufacturing unit sample from above utilizing the manufacturing unit strategies
class AppColorFactory: ColorFactory {

    enum Theme {
        case darkish
        case mild
    }

    func create(_ theme: Theme) -> UIColor {
        change theme {
        case .darkish:
            return PrimaryColorFactory().create()
        case .mild:
            return SecondaryColorFactory().create()
        }
    }
}

let manufacturing unit = AppColorFactory()
let primaryColor = manufacturing unit.create(.darkish)
let secondaryColor = manufacturing unit.create(.mild)

So these are all of the manufacturing unit patterns utilizing sensible actual world examples written in Swift. I hope my sequence of articles will assist you to to realize a greater understanding. 👍

author avatar
roosho Senior Engineer (Technical Services)
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog. 
rooshohttps://www.roosho.com
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog. 

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here


Latest Articles

author avatar
roosho Senior Engineer (Technical Services)
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog.