Android-CleanArchitecture-Kotlin icon indicating copy to clipboard operation
Android-CleanArchitecture-Kotlin copied to clipboard

Question about What is the best option?, Code Proposal

Open Martindgadr opened this issue 6 years ago • 2 comments

Reading the code I got this and thought asking about what is the best option or if it's the same for the following code in order to learn a little more. For big gurus of Kotlin, what about using companion object or constructor in data clases or clases, for example, following code:

data class Movie(val id: Int, val poster: String) {

    companion object {
        fun empty() = Movie(0, String.empty())
    }
}

Vs. This Is what I used to use

  data class Movie(val id: Int, val poster: String) {
     constructor():this(0, String.empty())
  }

Martindgadr avatar Jun 06 '18 12:06 Martindgadr

@Martindgadr If i had to initialize an object then i will choose "default values"

data class Movie(val id: Int = 0, val poster: String = String.empty())

val movie = Movie()

)))

ghost avatar Jun 06 '18 12:06 ghost

Static factory methods pattern is suggested in the Effective Java. However, in kotlin world, I agree with @VasileUngureanu :)

jaychang0917 avatar Jun 08 '18 06:06 jaychang0917