標籤:
調用過程更加清晰
+為靜態方法
1 // 類定義 2 @interface People : NSObject{ 3 int _age; 4 NSString* _name; 5 } 6 // Factory 方法 靜態 7 +(People*)peopleWithAge:(int)age andName:(NSString*)name; 8 9 -(id)initWithAge:(int)age andName:(NSString*)name;10 -(int)getAge;11 -(NSString*)getName;12 @end13 14 15 // 類實現16 @implementation People17 18 // Factory 方法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 @end41 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 }
Objective-C Factory 方法