首页 > 学院 > 开发设计 > 正文

代理模式

2019-11-06 07:10:10
字体:
来源:转载
供稿:网友

代理模式的特点

对扩展开放,对修改封闭代理delegation是一种定义对象之间关系的设计模式,如果一个对象的行为由另一个对象定义或者协助完成,那后者就是前者的代理被代理者将操作委托给其代理代理模式解耦了被代理类和代理类

代理模式的实现

这里写图片描述

//Window.h@PRotocol WindowDrawDelegate<NSObject>-(void)draw;@end//Window.h@interface Window : NSObject@property(nonatomic,weak) id<WindowDrawDelegate> delegate;-(void) draw;@end//Window.m#import "Window.h"#import "Rectangle.h"#import "Circle.h"@implementation Window@synthesize delegate;-(void)draw{ [delegate draw];}@end//Circle.h#import "Window.h"@interface Circle : NSObject<WindowDrawDelegate>-(void)draw;//Rectangle.h#import "Window.h"@interface Rectangle : NSObject<WindowDrawDelegate>-(void)draw;//main.m#import "Rectangle.h"#import "Window.h"#import "Circle.h"@autoreleasepool { Window * w = [[Window alloc] init]; Rectangle * rec = [[Rectangle alloc] init]; Circle * c = [[Circle alloc] init]; w.delegate = rec; [w draw]; w.delegate = c; [w draw]; }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表