[英]Better to allow an object type of 'id' or provide two arguments for two different types for a method?
想象一下,一個方法是將一個對象添加到某個NSMutableArray或NSMutableDictionary。 是否更好(以及為什么)只允許一個帶有類型id
參數,或者允許兩個 - 一個用於數組,一個用於字典?
例如:
- (void)addObjectToArray:(NSMutableArray *)anArray
orDictionary:(NSMutableDictionary *)aDictionary;
與
- (void)addObjectToArrayOrDictionary:(id);
如果使用第一個選項,我只需將nil
作為參數傳遞給我不需要的任何一個(即如果添加到字典中,我將nil
作為數組參數傳遞)。
兩者都沒有 - 我實現了兩個單獨的方法,一個用於數組,一個用於字典:
- (void)addObjectToArray:(NSMutableArray *)anArray;
- (void)addObjectToDictionary:(NSMutableDictionary *)aDictionary;
它比它更簡單,更可測試,更易於維護
一種具有尷尬簽名和不明確行為的方法,具體取決於其參數(例如,當參數nil
或兩者都不nil
時會發生什么?); 要么
一種弱類型的方法,它接受任何隨機的Objective-C實例,並且必須在運行時驗證其類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.