« Patrons de conception/Objet nul » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 11 :
 
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|singleton]]).
 
== Exemple en Java ==
 
<syntaxhighlight lang="java" highlight="8-15,24-25">
public 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();
}
}
</syntaxhighlight>
 
== Voir aussi ==
* [[../Singleton|singleton]] pour une instance unique de l'objet nul.