84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
实例方法,即需要实例化对象调用的方法。类方法,即类直接调用的方法。
我不明白什么场合用类方法,什么场合用实例方法。两者相比较真正的优势和劣势又是什么?
类方法一般用来提供标准化处理;实例方法一般用来提供个性化处理(绑定特定实例)。
优势和劣势这种说法应该不存在吧。
如果一个方法,输入参数相同的情况下,输出会收到不同对象实例的实例变量影响而不同,一般是要写成实例方法的。
如果输入参数相同,但是不受实例变量影响(static不算实例变量),则可以写成类方法交给类去调用。例如
- (NSString *)getCertainString { return @"The string." }
这种鬼你写成实例方法也行,但是不仅每次调用得实例化/释放一个,对代码阅读还有影响。
类方法比较常见于单例模式和工厂模式。单例模式程序中这个类只有其一个实例;工厂模式则是根据参数生产出不同的实例返回。
方法之间并没有什么优劣之分,只是为了使用方便.如果非要区分,下面应该算是一点
类方法的劣势:在类方法中,self 表示类,而不是类对象,所以在类方法中你没办法用self.调用属性,也没办法调用本类的实例方法.类方法的优势:调用简单,不需要创建对象
类方法一般用来提供标准化处理;实例方法一般用来提供个性化处理(绑定特定实例)。
优势和劣势这种说法应该不存在吧。
如果一个方法,输入参数相同的情况下,输出会收到不同对象实例的实例变量影响而不同,一般是要写成实例方法的。
如果输入参数相同,但是不受实例变量影响(static不算实例变量),则可以写成类方法交给类去调用。例如
这种鬼你写成实例方法也行,但是不仅每次调用得实例化/释放一个,对代码阅读还有影响。
类方法比较常见于单例模式和工厂模式。单例模式程序中这个类只有其一个实例;工厂模式则是根据参数生产出不同的实例返回。
方法之间并没有什么优劣之分,只是为了使用方便.如果非要区分,下面应该算是一点
类方法的劣势:在类方法中,self 表示类,而不是类对象,所以在类方法中你没办法用self.调用属性,也没办法调用本类的实例方法.
类方法的优势:调用简单,不需要创建对象