相信不少iOS的开发者在读或者写不同的代码时经常能够遇到静态类和单例,基本上优秀的开源项目都将二者完美的切入到项目中。二者的使用优劣对比网上也是各有其说,比较老套我就不文字分析二者的区别了,笔者对此查询了相关资料和对比几个优秀的代码,得出以下结论:
1. 如果项目大量用到了同一个类的若干方法,那就将这个类改为单例,或者新建继承此类的单例,这样可以减少多次初始化该类的弊端。
2. 如果一些常用的方法多个项目都可以使用,可以形成一个静态类的集合,方便以后重用。
3. 只要你愿意,二者可以相互转换。
举个例子,拥有登录功能的项目,都要处理登录数据及逻辑,两个方法:
方法一:建一个登录数据处理类:LoginEngine
LoginEngine.h
@interface LoginEngine : NSObject
// 保存用户名
+ (void)saveName:(NSString *)name;
// 获取用户名
+ (NSString)name;
@end
LoginEngine.m
@implementation LoginEngine
+ (void)saveName:(NSString *)name {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDe