· Vincent Bourdon  · 1 min read

Les génériques, premier pas vers le concept DRY

Pour ceux qui ne sont pas familiers avec le terme DRY, voici ce que l'on peut trouver comme définition sur wikipedia :

Pour ceux qui ne sont pas familiers avec le terme DRY, voici ce que l'on peut trouver comme définition sur wikipedia :

Pour ceux qui ne sont pas familiers avec le terme DRY, voici ce que l’on peut trouver comme définition sur wikipedia :

Ne vous répétez pas (Don’t Repeat Yourself) est une philosophie en programmation informatique consistant à éviter la redondance de code au travers de l’ensemble d’une application afin de faciliter la maintenance, le test, le débuggage et les évolutions de cette dernière.

Et oui c’est un acronyme de plus …

Bref, en quoi les génériques ont un rapport avec DRY ? Réponse tout !

Mais je vais parler d’un cas en particulier ici.

Disons que l’on a un Repository (une classe) qui doit contenir une méthode qui renvoi un object d’un certain type ayant l’id spécifié.

On pourrait écrire la méthode suivante :

public IDomainObject GetById(Type wantedType, object id)
{
    IDomainObject myObject = null;
    // do something
	return myObject;
}

Ce code est bien, mais pas top ! l’utilisateur fera un typeof() ou un GetType à chaque appel

La même méthode générique :

public T GetById(object id) where T : class, IDomainObject
{
	T myObject = default(T);
	// do something
	return myObject;
}

Youpi ! un seul paramètre et en plus plus de typeof et de cast de partout !

Back to Blog

Related Posts

View All Posts »
Développez un problème tous les jours

Développez un problème tous les jours

En lisant le flux RSS de Scott Hanselman sur mon feedly préféré, je suis tombé sur un billet intéressant où Scott répond à un dev se demandant si il est vraiment développeur ou juste Googleur.