一篇文章 学会 iOS中的 代理(delegate) 设计模式

原创 2014年05月15日 17:42:25

            代理设计模式,真是挺耐人寻味的,感觉很让人捉摸不透又感觉很有趣的东西!因为原本捉摸不透的代码,方法,披上代理的外衣后,就很有道理,很有意思了!

            各种设计模式,让本来很死板的代码变得灵活多变,各种功能可以在大大简化代码的情况下实现。大大方便了编程工作。

                        来一个简单的代理实现案例:

          这个代理运用的地方是在一个UI界面中(类似新浪手机客户端的界面),点击自定义tabBar中自定按钮,以达到切换窗口控制器的目的。

         1.首先要是要明确谁要做谁的代理,对象A如果是对象B的代理,谁是对象A,谁是对象B。

          这里,我们是让控制器作为自定义tabBar的代理。

          2. 代理中,需要记住的关键是在发出代理请求的类(A)中声明代理人(B)的实例变量,这样就可以保证A 能通过调用B中B代理的方法来完成B代理的事情,即自己代理给B 的事情。

        废话不多说,直接上代码:

      //这里tabBar发出代理请求,并且声明代理的实例变量(delegate)。

      //通知代理,按钮被点击,如果代理(控制器)实现了代理方法,tabBar就可以调用代理(控制器)中的代理方法来完成控制器代理的事情,即tabBar代理给控制器的事情。

 3.代理模式的关键点:

     A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议(protocol),B继承该协议来完成A代理给他的事情。
 
      控制器继承了代理协议,实现代理方法。

相关文章推荐

iOS设计模式 - 代理设计模式(Delegate)

代理模式 IOS中经常会遇到的两种情况:在cocoa框架中的Delegate模式与自定义的委托模式。下面分别举例说明一下:...
  • yzh0024
  • yzh0024
  • 2014年11月01日 22:34
  • 245

java中设计模式-delegate(代理)

http://yangguangfu.iteye.com/blog/815787---这个是很好的参考 关于代理的一个例子:开会--老板--秘书小明/开会--CEO--秘书小明,小明可以代替...
  • shb2058
  • shb2058
  • 2016年12月27日 14:30
  • 1306

Java开发中的23种设计模式,很好的一篇文章

一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模...

iOS-delegate设计模式

iOS-delegate设计模式 在iOS代理设计模式中可以把其分解为:host  delegate  actions proctocol host:该实例的角色是一个消费者,它消费的就是...

iOS设计模式——委托(delegate)

委托(delegate)也叫代理是iOS开发中常用的设计模式。我们借助于protocol(参考博文:objective-c协议(protocol))可以很方便的实现这种设计模式。 什么是代理? 苹...

如何理解 iOS Delegate (委托)设计模式 .

谈起软件开发设计模式, 一口气可以说上几十种。 就iOS 而言, 最为凸显的设计模式是 MVC (Model-View-Controller)。可以说, MVC在 iOS 平台上发挥得淋漓尽致。  为...

ios设计模式 delegate

委托,就是把自己要做的事情委托给别人来做,委托在ios里面用的非常之多,给人最直观的感觉就是,我提供好一个模板给你们,然后你们按照模板来填充内容。 当一个A view 里面包含了B view b...

iOS之Delegate设计模式

/** * Delegate设计模式: 代理设计模式是一种常用的设计模式,主要作用如下所示: 1.降低代码的耦合性,提高可重用性 ...

IOS-设计模式之委托(delegate)

委托(delegate)也叫代理是iOS开发中常用的设计模式。我们借助于protocol(参考博文:objective-c协议(protocol))可以很方便的实现这种设计模式。 什么是代理? ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一篇文章 学会 iOS中的 代理(delegate) 设计模式
举报原因:
原因补充:

(最多只允许输入30个字)