我希望这适合SO。
给定两个类:ClassA是应用程序的主要控制器对象。 ClassB控制硬件设备(通过网络,USB,串行等)。 ClassA创建一个ClassB对象,并使用它从硬件设备发送/接收数据。
当用户想要关闭应用程序时,ClassA会向ClassB发送“关闭”消息。在某些情况下,ClassB需要较长的时间才能完成关机。也许它必须将硬件重置为已知状态,或等待正在进行的操作才能完成。
ClassA和ClassB之间通信的最佳设计模式是什么,以尽量减少耦合?关机消息中的回调(方法或块)?使用定义的“shutdownComplete”方法委派协议?还有别的吗?
另外,ClassB实际上是一个“抽象”超类,因为有多个硬件设备,所以每个都有一个子类B.我认为这不会影响设计。
谢谢!
答案 0 :(得分:2)
我会使用块回调:
- (void) initiateShutdownWithCompletionHandler: (dispatch_block_t) callback;