Je crois que vous devez être au courant de cet idiome, qui est en quelque sorte l'excuse de java pour les fermeturesComment tester les cours anonymes?
//In the "Resource Manager" class
public void process(Command cmd){
//Initialize
ExpensiveResource resource = new ExpensiveResource();
//Use
cmd.execute(resource);
//Release/Close
resource.close();
}
//In the Client class...
manager.process(new Command(){
public void execute(ExpensiveResource res){
//Do things with the resource
}
});
je cet idiome/modèle beaucoup mais recently I tried to test it, et il me donne un mal de tête ...
Comment tester isolément les classes ResourceManager et Client? J'ai trouvé que ça les couples tellement que vous ne pouvez pas le faire facilement.
Les idées sont appréciées.
Cordialement
Si les fermetures entraînent moins de réutilisation de code (plutôt que plus) dans votre code, vous les utilisez mal; mais il n'y a rien de mal à leur sujet en tant que tel. En fait, tout cadre centré autour des fermetures entraîne généralement une augmentation spectaculaire de la réutilisation du code (parce que vous pouvez réutiliser les mêmes algorithmes avec des prédicats différents, etc.). Idem pour les cours anonymes. –
Je suis avec Pavel ... Je manque vraiment les fermetures tout en travaillant en Java –
S'il vous plaît expliquer comment l'objet que vous passez en tant que fermeture peut être réutilisé. Je peux écrire un code OO droit pour réutiliser autant qu'une fermeture, mais je n'arrive pas à comprendre comment réutiliser ce mot que je passe, mais c'est peut-être là que les fermetures sont supérieures aux classes internes anonymes - je les utilise régulièrement et peut vous dire qu'il n'y a pratiquement aucun moyen de réutiliser le code que vous transmettez anonymement. –