Des chiens et des chats Généricité

La généricité, présente dans de nombreux langages de programmation, permet d’aller plus loin dans l’industrialisation du code et de limiter la duplication de code entre plusieurs classes.

Nous allons aborder la généricité par le biais d’un problème difficile à régler sans faire appel à elle.

Soit une classe de données Dog permettant de représenter un chien. Cette classe, très simple, contient un unique attribut permettant de nommer l’animal :

data class Dog(val name: String) 

Ajoutons à ce programme une classe DogKennel représentant un chenil capable d’accueillir dix chiens :

class DogKennel 
{ 
 
 companion object 
 { 
 
   private const val KENNEL_CAPACITY = 10 
 
 } 
 
 private val dogs = arrayOfNulls<Dog>(DogKennel.KENNEL_CAPACITY) 
 
 var dogsCounter = 0 
   private set 
 
 private fun getAvailablePlacesNumber(): Int = 
     DogKennel.KENNEL_CAPACITY - dogsCounter 
 
 fun addDog(dog: Dog): Boolean 
 { 
   return if (getAvailablePlacesNumber() < 0) 
   { 
     false 
   } 
   else ...
couv_RIKOT.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
En résumé
Suivant
Écrire une classe générique