Effective Kotlin: Item 1 — Consider static factory methods instead of constructors

As an alternative to public constructors Effective Java talks about using static factory methods such as from, of, valueOf, getInstance, newInstance and newType that return an instance of a class. See Joshua’s book for the pros and cons.

We see an example of this in the Android SDK with the Toast.makeText() function. Additionally, Alex Lockwood talks about using a Fragment.newInstance() pattern on Android which helps encapsulate the Bundle data. You may also come across Activity.newIntent().