我有一種情況,我有一個純粹靜態的無狀態門面來提供對服務集合的訪問。我正在考慮使用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 - 在這種情況下,我希望服務的單例實例彼此瞭解,而不將底層服務實現爲單例。所以門面也爲每個服務注入必要的參考。 –