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 }

 

posted @ 2015-11-26 22:23  金胖胖  阅读(256)  评论(0编辑  收藏  举报