84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
實例方法,即需要實例化物件呼叫的方法。 類別方法,即類別直接呼叫的方法。
我不懂什麼場合用類別方法,什麼場合用實例方法。兩者相比較真正的優點和缺點又是什麼?
類別方法一般用來提供標準化處理;實例方法一般用來提供個人化處理(綁定特定實例)。
優勢和劣勢這種說法應該不存在吧。
如果一個方法,輸入參數相同的情況下,輸出會收到不同物件實例的實例變數影響而不同,一般是要寫成實例方法的。
如果輸入參數相同,但是不受實例變數影響(static不算實例變數),則可以寫成類別方法交給類別去呼叫。例如
- (NSString *)getCertainString { return @"The string." }
這種鬼你寫成實例方法也行,但是不只每次呼叫得實例化/釋放一個,對程式碼閱讀還有影響。
類方法較常見於單例模式和工廠模式。單例模式程式中這個類別只有其一個實例;工廠模式則是根據參數生產出不同的實例回傳。
方法之間並沒有什麼優劣之分,只是為了使用方便.如果非要區分,下面應該算是一點
類別方法的劣勢:在類別方法中,self 表示類別,而不是類別物件,所以在類別方法中你沒辦法用self.呼叫屬性,也沒辦法呼叫本類別的實例方法.類別方法的優點:呼叫簡單,不需要建立物件
類別方法一般用來提供標準化處理;實例方法一般用來提供個人化處理(綁定特定實例)。
優勢和劣勢這種說法應該不存在吧。
如果一個方法,輸入參數相同的情況下,輸出會收到不同物件實例的實例變數影響而不同,一般是要寫成實例方法的。
如果輸入參數相同,但是不受實例變數影響(static不算實例變數),則可以寫成類別方法交給類別去呼叫。例如
這種鬼你寫成實例方法也行,但是不只每次呼叫得實例化/釋放一個,對程式碼閱讀還有影響。
類方法較常見於單例模式和工廠模式。單例模式程式中這個類別只有其一個實例;工廠模式則是根據參數生產出不同的實例回傳。
方法之間並沒有什麼優劣之分,只是為了使用方便.如果非要區分,下面應該算是一點
類別方法的劣勢:在類別方法中,self 表示類別,而不是類別物件,所以在類別方法中你沒辦法用self.呼叫屬性,也沒辦法呼叫本類別的實例方法.
類別方法的優點:呼叫簡單,不需要建立物件