//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
}
});
のためのJavaの言い訳のようなもの、私はこのイディオム/パターンをたくさん使用したがrecently I tried to test it、そしてそれは私に頭痛を与えているこのイディオム、に精通している必要があります信じています
ResourceManagerクラスとClientクラスをどのようにして個別にテストするのですか?私はこれを強く結びつけて、あなたが簡単にできないことが分かった。
アイデアありがとうございます。
よろしくお願いいたします。
コード内でクロージャを使用すると、コードの再利用が少なくて済むようになります。しかし、それについては何も間違っていません。実際には、クロージャを中心とするフレームワークは、(同じ述語を異なる述語などで再利用することができるため)コードの再利用を大幅に増加させます。匿名クラスの場合も同様。 –
私はパベルと一緒にいます... Javaで作業しているときにクロージャが本当に欠けています –
クロージャとして渡すアイテムをどのように再利用できるのか説明してください。私はクロージャと同じくらい再利用するためにストレートOOコードを書くことができますが、私が渡しているそのスニペットを再利用する方法はわかりませんが、クロージャが匿名の内部クラスよりも優れているかもしれません。匿名で渡すコードを再利用する方法は事実上ありません。 –