外部で使用するためのスレッドセーフな API を提供することを担当する ClassA が 1 つあるとします。また、一部の ClassA API は、別の ClassB から何らかのメソッドを呼び出して、いくつかのロジックを実行する必要があります (ClassB のメソッドがステートレスでスレッドセーフであるとします)。ただし、ビジネス ロジックのため、ClassB と ClassA を 1 つのクラスとしてマージすることはできません。たとえば、次のコード スニペットのように。これを達成するためのより良い方法はありますか? もちろん、同期ブロック、同時ロックフリー データ構造などの ClassA に対して、より細かい粒度の同時実行制御を使用することもできます。
ありがとう!
public class ClassA{
public synchronized void method1(ClassB cb){
//do internal stuff1
cb.printAlog();
//do internal stuff2
}
public synchronized void method2(){
//do internal stuff3
}
......
}
public class ClassB{
public void printALog(){
//....
}
......
}