文档介绍:对于iOS开发,举例Cocoa框架下的几个设计模式为大家分析。当然,Cocoa框架下关于设 计模式的内容远远不止这些,我们选择了常用的几种:单例模式、委托模式、观察者模式、 MVC模式。
委托模式
委托模式从GoF设计装饰(Decoraller : UIViewController<PhilosopherDelegate>
8.
***@end
10.
13. //
14.
//
16.
***@implementation ViewController
18.
- (void)viewDidLoad
20.
21. {
22.
[super viewDidLoad];
24.
Philosopher *obj = [[Philosopher alloc ] init]
26.
= self;
28.
[obj start];
30.
}
32.
#pragma 一 PhilosopherDelegate 方法实现
34.
-(void) sleep
36.
{
38.
NSLog(@”sleep...”);
40.
}
42.
-(void) eat
44.
{
46.
NSLog(@”ea t...”);
48.
}
50.
-(void) work
52.
{
54.
NSLog(@”work...”);
56.
}
58.
***@end
委托对象如何与通用类建立引用关系呢? = self语句来指定委托对象和通用类间的引用关系。一般情况下通用类由框架直接提供,在 这个例子中我们根据需要自己实现了通用类Philosopher,:
[cpp] view plaincopy
1. //
2.
//
4.
// DelegatePattern
6.
//
8.
#import “”
10.
***@inteface Philosopher : NSObject
12.
{
14.
NSTimer *timer;
16.
int count;
18.
}
20.
***@property (nonatomic, weak) id<PhilosopherDelegate> delegate;
22.
-(void) start;
24.
-(void) handle;
26.
27. ***@end
汇丰农牧 /
中定义 delegate 属性,它的类型是 idvPhilosopherDelegate>,它可以保存
委托对象的引用,属性weak说明是"弱引用”。:
[cpp] view plaincopy
1. //
2.
//
4.
// DelegatePattern
6.
#import “”
8.
***@impleme