このイディオムに精通している必要があると思います。これは、Javaのクロージャの言い訳のようなものです。
//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
}
});
私はこのイディオム/パターンをよく使用しましたが、最近それをテストしようとしました、そしてそれは私に頭痛を与えています...
ResourceManagerクラスとClientクラスを分離してテストするにはどうすればよいですか?私は、これがそれらを非常に緊密に結合しているので、簡単にそれを行うことができないことを発見しました。
アイデアは大歓迎です。
よろしく