Implementing the factory pattern

The factory pattern is another commonly-used creational design pattern. This pattern provides a way to create objects for clients without knowing the concrete object types. It simplifies the way we create objects when we are dealing with multiple implementations of a type and the implementation type has to be chosen based on the context provided.

Let's consider the following code snippet:

val sensor:Sensor = TemperatureSensor()

Here, we are directly instantiating the concrete type in our code. Our client code is directly dependent on the Sensor implementation types. If we have another type, such as HumiditySensor, to be used, then we have to modify our code to accommodate this change:

@JvmStaticfun main

Get Kotlin for Enterprise Applications using Java EE now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.