我有一种情况,我有一个纯粹静态的无状态门面来提供对服务集合的访问。我正在考虑使用NS_ROOT_CLASS作为提供基类的替代方案,因为Facade没有内存管理需求。试想一下:NS_ROOT_CLASS对于IOS开发是否“安全”?
NS_ROOT_CLASS
@interface UtilityThing
+ (void) Service1;
+ (void) Service2;
@end
服务1 &客服2有效地代表“单身般的”服务类的实例。所以调用代码如下所示:
[[UtilityThing Service1] thingService1Does];
除了一个事实,即它没有实例数据,我选择了NS_ROOT_CLASS部分简化类的用法,所以,唯一的代码完成建议是相关的人(回复:XCode 5: Is there any way to group/filter/sort what shows up in code-completion?)
有谁知道这种模式是否存在可能阻止应用程序通过认证的陷阱?或者如果在使用NS_ROOT_CLASS时还有其他技术上的考虑因素?
这比仅仅定义全局函数'UtilityService1'和'UtilityService2'好吗? –
也许只有一点点,因为用户不需要对所有Utility *进行排序来了解哪些服务可用......尽管像UtilityService *这样的详细约定也可以工作。 –
@robmayoff - 在这种情况下,我希望服务的单例实例彼此了解,而不将底层服务实现为单例。所以门面也为每个服务注入必要的参考。 –