Objective-C 工厂方法
调用过程更加清晰
+为静态方法
1 // 类定义 2 @interface People : NSObject{ 3 int _age; 4 NSString* _name; 5 } 6 // 工厂方法 静态 7 +(People*)peopleWithAge:(int)age andName:(NSString*)name; 8 9 -(id)initWithAge:(int)age andName:(NSString*)name; 10 -(int)getAge; 11 -(NSString*)getName; 12 @end 13 14 15 // 类实现 16 @implementation People 17 18 // 工厂方法 19 +(People*)peopleWithAge:(int)age andName:(NSString*)name{ 20 return [[People alloc] initWithAge:age andName:name]; 21 } 22 23 // 初始化方法 24 -(instancetype)initWithAge:(int)age andName:(NSString *)name{ 25 self = [super init]; // 执行父类init方法 26 if (self) { 27 _age = age; 28 _name = name; 29 } 30 return self; 31 } 32 33 -(int)getAge{ 34 return _age; 35 } 36 37 -(NSString*)getName{ 38 return _name; 39 } 40 @end 41 42 43 // 调用 44 int main(int argc, char * argv[]) { 45 People *p = [People peopleWithAge:10 andName:@"jinpangpang"]; 46 NSLog(@"p.age %d, p.name %@",[p getAge],[p getName]); 47 48 @autoreleasepool { 49 return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 50 } 51 }