objective-c - 硬件设备 Controller 的设计模式

标签 objective-c cocoa design-patterns

我希望这适合 SO。

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

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

在 ClassA 和 ClassB 之间通信以最小化耦合的最佳设计模式是什么?关机消息中的回调(方法或 block )?使用已定义的“shutdownComplete”方法委托(delegate)协议(protocol)?还有别的吗?

此外,ClassB 确实是一个“抽象”父类(super class),因为有多个硬件设备,所以每个硬件设备都有一个子类 B。我认为这不会影响设计。

谢谢!

最佳答案

我会使用 block 回调:

- (void) initiateShutdownWithCompletionHandler: (dispatch_block_t) callback;

关于objective-c - 硬件设备 Controller 的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348725/

相关文章:

iphone - 处理UIScrollView中UITextField的touchesBegan方法

objective-c - NSKeyedArchiver 返回意外类?

ios - map View :regionDidChangeAnimated: never called

iphone - cell.titleLabel的字体设置应该在cellForRowAtIndexPath:方法中的什么位置?

iphone - 你需要在 GCD 的一个 block 中创建一个 NSAutoreleasePool 吗?

multithreading - 我的 cocoa 应用程序记录了一些 "[Switching to process XXXX thread 0xXXXX]"

iphone - -[NSOperationQueue操作]返回一个不应该的空数组?

ios - (MVVM) 每个 View 或每个模型的 View 模型?

java - java.io 中最常用的模式是什么?

asp.net - 在网站上放置广告的最佳做法是什么?