Patrons de conception/Objet nul
Quand une fonction ou une méthode retourne une référence à un objet, celle-ci peut être nulle (aucun objet concret référencé).
il faut alors tester la référence retournée afin de ne pas provoquer une erreur dans le programme.
Patron de conception | |
---|---|
Catégorie : Autre | |
Nom français : | Objet nul |
Nom anglais : | Null object |
Utiliser un objet nul dont les méthodes ne font rien au lieu d'utiliser une référence nulle. |
Au lieu de retourner une référence nulle, il est possible de créer une sous-classe ou une classe d'implémentation d'interface spécifique dont les méthodes ne font rien. La fonction ou méthode retourne alors une instance de cette classe.
Les appels de méthodes avec un objet nul sont alors possibles, ce qui n'est pas le cas avec une référence nulle.
Comme l'état interne de cet objet ne change pas (les méthodes ne faisant rien), il est possible d'avoir une instance unique d'un tel objet (voir singleton).
Exemple en Java
modifierpublic interface ILivre
{
public void lire();
}
public class Lecteur
{
/** Objet nul : une sous-classe implémentant l'interface ILivre */
public static final ILivre AUCUN_LIVRE = new ILivre()
{
public void lire() { /* Ne rien faire */ }
};
/** Jamais null : l'objet nul AUCUN_LIVRE est utilisé à la place de null. */
private ILivre livre_en_cours = AUCUN_LIVRE;
public void setLivre(ILivre livre)
{
livre_en_cours = livre==null ? AUCUN_LIVRE : livre;
}
public void action()
{
/* Pas besoin de tester null */
livre_en_cours.lire();
}
}
Voir aussi
modifier- Singleton pour une instance unique de l'objet nul.