The prototype design pattern
The prototype design pattern is a creational design pattern that involves creating objects by cloning them from existing ones. Its purpose is related to performance and keeping it high by trying to avoid expensive calls.
Class diagram
In languages such as Java, we usually see a class that implements an interface with a clone
method, which returns a new instance of the class. The following figure shows an example diagram:
In the next section, we will provide a code example of the prototype design pattern from the point of view of Scala.
Code example
The prototype design pattern is really easy to implement in Scala. We can just use one of the language features. Since the prototype design pattern really resembles how cells in biology divide, let's use a cell as an example:
/** * Represents a bio cell */ case class Cell(dna: String, proteins: List[String])
In Scala, all case classes have a copy
method, which returns a new instance that is cloned from the original one...