2011-09-08 6 views
3

これはSOに適していると思います。ハードウェアデバイスコントローラのデザインパターン

与えられた2つのクラス:ClassAは、アプリケーションのメインコントローラオブジェクトです。 ClassBはハードウェアデバイスを制御します(ネットワーク、USB、シリアルなど)。 ClassAはClassBオブジェクトを作成し、それを使用してハードウェアデバイスからデータを送受信します。

ユーザーがアプリケーションをシャットダウンする場合、ClassAはClassBに「シャットダウン」メッセージを送信します。場合によっては、ClassBはシャットダウンを完了するまでに長い時間を要します。たぶん、ハードウェアを既知の状態にリセットするか、実行中の操作が完了するまで待つ必要があります。

カップリングを最小限に抑えるため、ClassAとClassB間の通信に最適なデザインパターンは何ですか?シャットダウンメッセージのコールバック(メソッドまたはブロック)?定義済みの "shutdownComplete"メソッドを使用してプロトコルを委任しますか?他に何か?

また、ClassBは実際には抽象スーパークラスです。複数のハードウェアデバイスがあるため、それぞれにサブクラスBがあります。私はそれがデザインに影響するとは思わない。

ありがとうございます!

答えて

2

私は、ブロックコールバックを使用したい:ええ、それは私があまりにも今傾いてる途中

- (void) initiateShutdownWithCompletionHandler: (dispatch_block_t) callback; 
+0

です。デリゲートメソッドとあまりにも多くのステートタイプ変数を使用していました。 – Flyingdiver

関連する問題