gpt4 book ai didi

ios - 为什么 Apple 允许创建多个 HMHomeManager 实例

转载 作者:行者123 更新时间:2023-11-28 18:29:50 25 4
gpt4 key购买 nike

我想知道为什么 Apple 允许创建多个 HMHomeManager 实例,这样做的目的是什么?

我希望 HMHomeManager 的实例是单例。

最佳答案

我不能代表 Apple,但我没有看到任何情况下 HMHomeManager 会从单例中获益,并且有几个明显的缺点。

  1. HMHomeManager 有一个 delegate 属性。当您希望委托(delegate)人将消息发送给单个委托(delegate)人或许多委托(delegate)人可能共享一个委托(delegate)时,委托(delegate)模式非常适用。然而,当一个委托(delegate)人可能产生许多委托(delegate)人感兴趣的消息时,如果 HMHomeManager 是单例,就会出现这种情况。
  2. 单例不容易解除分配。任何将 HMHomeManager 用作单例的应用程序都会将该对象保存在内存中,以监视对主数据库的更改,即使不再需要它也是如此。
  3. 永远只有一个 HMHomeManager 的假设可能不会永远成立。虽然一个 HMHomeManager 可以包含许多家庭,但他们都共享一个共同的用户。将此类设计为单例会阻止应用程序同时代表多个用户执行操作。即使永远不需要这种行为,开发人员也可能明智地避免在设计过程的早期选择无法支持这种行为的界面。

关于ios - 为什么 Apple 允许创建多个 HMHomeManager 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35116958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com