iOS设计模式下Proxy和Delegate有什么不同

时间:2017-10-12 01:23:28

标签: ios objective-c

iOS设计中Proxy和Delegate有什么不同? 我在那里阅读项目我还没有看到设计模式,少数代理,否则就是委托。

它们之间有什么区别吗?

@protocol BaseViewControllerProxy <NSObject> 

@optional

- (void)updateLayout:(CGRect)rect;
- (void)viewWillAppear:(BOOL)animated;  @optional

- (void)viewWillTransitionToSize;
- (void)viewWillAnimateTransitionToSize;
- (void)viewDidTransitionToSize;
- (void)viewWillTransitionFrom:(UITraitCollection *)oldCollection toTraitCollection:(UITraitCollection *)newCollection;
- (void)viewWillAnimateTransitionToTraitCollection:(UITraitCollection *)newCollection;
- (void)viewDidTransitionToTraitCollection:(UITraitCollection *)newCollection;

@end

1 个答案:

答案 0 :(得分:0)

ProxyDelegate非常不同,这些是我能想到的一些事情:

Proxy模式在涉及庞大的本地数据库并且您不想在一次调用中创建真实对象的实例的情况下非常有用。 (即你有1000个产品,但是你想要加载100乘100,你可以加载所有100个对象,然后使用带有对象主键的代理加载其他900个对象。)我相信这种模式有助于内存管理,这只是我用于NSProxy的一个用例。有关proxy的更多信息,请点击此处。

Delegate模式主要用于充当HQ Commander。委托就像是代表另一个人行事的对象。一个非常常见的用例是当button位于tableview cell深处并且您需要从其view controller处理此类操作时,因此您需要给tableview cell一个{ {1}}在这种情况下,我们将设置为HQ Commander。因此,每次点击view controller时,都会通知buttonHQ Commander将执行其已实施的任务,