デバイスとの通信を処理するクラスがあります。このクラスを Protocol と呼びました。クラスには状態情報が含まれていないため、プロトコル クラスのメソッドを公開し、デバイスの状態を含むモデル クラスを作成しました。
私が見ているように、これを実装するには3つの方法があります
- モデル クラスにプロトコルを継承させる
- モデル クラスにプロトコルを実装させる
- モデルがプロパティを介してプロトコルを公開できるようにする
プロトコルには、オプション 1 と 3 に反対するモデル クラスの実装者に公開しないほうがよいメソッドが含まれている可能性があります。
オプション 2 では、プロトコルから公開するものを選択できますが、ほとんどの機能は次のようなプロトコルへの呼び出しになります。
DoSomething()
{
protocol.DoSomething();
}
「より良い」選択肢は何だと思いますか?
注意: 状態とプロトコルを分離する理由は、プロトコルが固定されておらず、外部要因に応じて変化する可能性があるためです。