Ich glaube, Sie mit diesem Idiom vertraut sein, die für Verschlüsse Art von Java Entschuldigung istWie testen anonyme Klassen?
//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
}
});
ich dieses Idiom/Muster viel verwendet, aber recently I tried to test it, und es ist mir Kopfschmerzen geben ...
Wie können Sie den ResourceManager und die Client-Klassen isoliert testen? Ich habe festgestellt, dass diese Paare sie so eng miteinander verbinden, dass du es nicht leicht machen kannst.
Ideen werden geschätzt.
Grüße
Wenn Verschlüsse zu weniger Codewiederverwendung (statt mehr) in Ihrem Code führen, verwenden Sie sie nur falsch; Aber an ihnen ist nichts falsch. In der Tat führt ein Framework, das sich um Closures dreht, in der Regel zu einem dramatischen Anstieg der Codewiederverwendung (weil Sie dieselben Algorithmen mit unterschiedlichen Prädikaten usw. wiederverwenden können). Dito für anonyme Klassen. –
Ich bin mit Pavel ... Ich vermisse wirklich Verschlüsse während der Arbeit in Java –
Bitte erklären Sie, wie das Element, das Sie als eine Schließung übergeben, wiederverwendet werden kann. Ich kann geraden OO-Code schreiben, um so viel Wiederverwendung wie eine Schließung zu bekommen, aber ich kann nicht herausfinden, wie ich das Snippit, das ich übergebe, wiederverwende, aber vielleicht sind Schließungen besser als anonyme innere Klassen - ich benutze sie regelmäßig und kann Ihnen sagen, dass es praktisch keine Möglichkeit gibt, den Code, den Sie anonym weitergeben, wiederzuverwenden. –