>>721
interface IAlert {
void Set(Severity severity);
void Unset();
}
たとえば、あるアラートに対してこういうインターフェイスを定義する
クラスAはこれをコンストラクタで受け取り、温度センサーの値が閾値を超えたら危険度に応じた引数でSetメソッドを呼ぶ
温度が低下して閾値を割ったらUnsetを呼んで解除する
このIAlertインターフェイスを、具体的な実装、たとえばパトランプを操作するクラスが実装するわけ
こうしておけば、
パトランプじゃなくて画面でアラート状態を表示したくなったときにAに手を入れずにIAlertを実装するだけで済む
もちろん、パトランプしか想定しなくていいなら直接パトランプクラスのメソッドを呼んでもいいし、Unsetが必要ないならイベントでもいいかもね
ただしイベントの場合はBからAへの密結合が発生するとか、それを避けるなら追加で橋渡しのコードが都度必要になるといった懸念点もある