4.8 C
New York
Sunday, January 19, 2025

Swift prototype design sample – The.Swift.Dev.



· 1 min learn


The prototype design sample is used to create clones of a base object, so let’s examine some sensible examples written in Swift.

This can be a creational design sample, it’s helpful when you might have a really primary configuration for an object and also you’d like to offer (clone) these predefined values to a different one. Mainly you’re making clones from a prototype objects. 😊😊😊

This method has some advantages, one is for instance that you just don’t must subclass, however you’ll be able to configure clones individually. This additionally means that you would be able to take away a bunch of boilerplate (configuration) code if you will use prototypes. 🤔

class Paragraph {

    var font: UIFont
    var coloration: UIColor
    var textual content: String

    init(font: UIFont = UIFont.systemFont(ofSize: 12),
         coloration: UIColor = .darkText,
         textual content: String = "") {

        self.font = font
        self.coloration = coloration
        self.textual content = textual content
    }

    func clone() -> Paragraph {
        return Paragraph(font: self.font, coloration: self.coloration, textual content: self.textual content)
    }
}

let base = Paragraph()

let title = base.clone()
title.font = UIFont.systemFont(ofSize: 18)
title.textual content = "That is the title"

let first = base.clone()
first.textual content = "That is the primary paragraph"

let second = base.clone()
second.textual content = "That is the second paragraph"

As you’ll be able to see the implementation is just some traces of code. You solely want a default initializer and a clone technique. Every part can be pre-configured for the prototype object within the init technique and you can also make your clones utilizing the clone technique, however that’s fairly apparent at this level… 🤐

Let’s check out another instance:

class Paragraph {

    var font: UIFont
    var coloration: UIColor
    var textual content: String

    init(font: UIFont = UIFont.systemFont(ofSize: 12),
         coloration: UIColor = .darkText,
         textual content: String = "") {

        self.font = font
        self.coloration = coloration
        self.textual content = textual content
    }

    func clone() -> Paragraph {
        return Paragraph(font: self.font, coloration: self.coloration, textual content: self.textual content)
    }
}

let base = Paragraph()

let title = base.clone()
title.font = UIFont.systemFont(ofSize: 18)
title.textual content = "That is the title"

let first = base.clone()
first.textual content = "That is the primary paragraph"

let second = base.clone()
second.textual content = "That is the second paragraph"

The prototype design sample can be useful in case you are planning to have snapshots of a given state. For instance in a drawing app, you might have a form class as a proto, you can begin including paths to it, and in some unspecified time in the future at time you might create a snapshot from it. You may proceed to work on the brand new object, however this gives you the power to return to a saved state at any level of time sooner or later. 🎉

That’s it concerning the prototype design sample in Swift, in a nuthsell. 🐿

Associated posts


On this article I’m going to indicate you tips on how to implement a primary occasion processing system in your modular Swift software.


Study the iterator design sample by utilizing some customized sequences, conforming to the IteratorProtocol from the Swift commonplace library.


Learn 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. Learn to use lenses and prisms to control objects utilizing a useful method.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles