BeginnerOOP

Companion Factory

Create instances through a companion factory.

kotlin
class Token private constructor(val value: String) {
    companion object {
        fun create(raw: String) = Token(raw.trim())
    }
}

fun main() {
    println(Token.create("  abc  ").value)
}
Output
abc

Explanation

Private constructor hides direct construction. companion object create() is the public API.