簡體   English   中英

最好允許對象類型為'id'或為方法提供兩種不同類型的參數?

[英]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;

它比它更簡單,更可測試,更易於維護

  1. 一種具有尷尬簽名和不明確行為的方法,具體取決於其參數(例如,當參數nil或兩者都不nil時會發生什么?); 要么

  2. 一種弱類型的方法,它接受任何隨機的Objective-C實例,並且必須在運行時驗證其類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM