2010-07-21 6 views
4

Pour éviter les exceptions NullPointer, je trouve utile de fournir une implémentation fictive non modifiable d'une interface avec l'interface. Comme ceci:Nom de modèle de conception d'implémentation fictive

public interface Action { 

    void perform(); 

    public static final Action dummy = new Action() { 
    public void perform() { 
     /*nothing*/ 
    } 
    }; 

} 

Action.dummy peut alors être utilisé à la place du mal null.

Y a-t-il un nom pour ce modèle de conception?

+4

Le programme ne fonctionne pas et je ne sais pas pourquoi. – NullUserException

+0

@NullUserException: lol! +1 – DanP

Répondre

5

Null Object pattern (fourni par M. Fowler si je me souviens bien).

Voici le chapitre Introduce Null Object du livre Refactoring de Fowler.

+0

Oui, Fowler a popularisé celui-ci dans diverses publications, bien qu'il l'ait appelé un SpecialCase dans PoEAA, que j'aime encore mieux. En règle générale, une application commerciale trouve qu'il existe un comportement utile qui va avec un objet qui veut être nul, si vous le cherchez aussi. – Berryl

+0

Je trouve "SpecialCase" plutôt insignifiant. Un cas particulier pourrait être tout et rien, alors que "Null Object" est plus significatif. – deamon

Questions connexes