Qu'est-ce qui est différent entre usine code> et Factory2 code>?
Ils semblent tous les deux faire la même chose.
3 Réponses :
Un objet compagnon est un type spécifique de déclaration d'objet permettant à un objet d'agir de manière similaire aux objets statiques dans d'autres langues (telles que Java). Ajout d'un compagnon à la déclaration d'objet permet d'ajouter la fonctionnalité "statique" à un objet même si le concept statique réel n'existe pas dans Kotlin. P> blockQuote>
Propriétés et fonctions déclarées dans un objet compagnon peut être accès directement à l'aide du nom de la classe, identique à celui des membres statiques en Java.
Donc, dans votre code, la fonction Makecar d'usine peut être appelée à deux manières suivantes
Car.Factory2.makeCar(50) // From outside the class Factory2.makeCar(50) // Inside the class
class MyClass {
// some implementations
companion object {
val SOME_STATIC_VARIABLE = "STATIC_VARIABLE"
fun someStaticFunction() {
// static function implementation
}
}
}
Dupliqué possible de Kotlin: différence entre objet et objet de compagnon dans une classe
Mais cela ne répond pas à ce qui est l'avantage de l'objet compagnon sur l'objet?