非常に基本的で簡単なアプローチ: シンプルなサブスクライブ/パブリッシュ フレームワークを実装します。
- コールバック メソッドを定義するインターフェイスを作成します。
- クラス C でコールバック インターフェイスを実装します。
- クラス C がクラス B の各インスタンスにコールバックを登録する手段を提供する。そうする。
- クラス b の特定のインスタンスでタイマーが起動したら、コールバックを呼び出します。
例:
public interface BlammyHoot
{
void hoot(); // this is the call back.
}
public class C implements BlammyHoot
{
public void hoot()
{
// implement the callbe method here.
}
}
public class B
{
private List<BlammyHoot> hootList = new LinkedList<BlammyHoot>();
public void registerBlammyHoot(final BlammyHoot theHoot)
{
if (theHoot != null)
{
hootList.add(theHoot);
}
}
public void respondToTimerTimeout()
{
for (BlammyHoot hootElement : hootList)
{
hootElement.hoot();
}
}
}
警告: 上記の Java コードに対して実行されたテストはゼロです (これに限定されるものではありませんが、私はコンパイルしませんでした)。