Thank you for the explanations. The power of the abstract factory pattern can be amplified using dependency injection. Using DI you can completely decouple the client from the classes it's using (dependency inversion principle). Using the chat types is a good first step but the client still determines the type of chat it's using ("FakeChat", "SdkChat"). DI can be simple constructor dependency injection e.g. MyClass(factory: ChatFactory) {...}

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Emanuel Moecklin

Emanuel Moecklin

More from Medium

Rewriting Android App’s Back-Handling Logic

This is a True Story

The story of George

Jetpack Compose Guideline Series -5