硬件设备控制器的设计模式

时间:2011-09-08 13:21:09

标签: objective-c cocoa design-patterns

我希望这适合SO。

给定两个类:ClassA是应用程序的主要控制器对象。 ClassB控制硬件设备(通过网络,USB,串行等)。 ClassA创建一个ClassB对象,并使用它从硬件设备发送/接收数据。

当用户想要关闭应用程序时,ClassA会向ClassB发送“关闭”消息。在某些情况下,ClassB需要较长的时间才能完成关机。也许它必须将硬件重置为已知状态,或等待正在进行的操作才能完成。

ClassA和ClassB之间通信的最佳设计模式是什么,以尽量减少耦合?关机消息中的回调(方法或块)?使用定义的“shutdownComplete”方法委派协议?还有别的吗?

另外,ClassB实际上是一个“抽象”超类,因为有多个硬件设备,所以每个都有一个子类B.我认为这不会影响设计。

谢谢!

1 个答案:

答案 0 :(得分:2)

我会使用块回调:

- (void) initiateShutdownWithCompletionHandler: (dispatch_block_t) callback;