iOS 筹划模式的应用 ⑨ 中介者模式

手机软件开发 2024-9-3 17:20:21 86 0 来自 中国
前言

    在 App 中,我们经常碰到多个 UI 元素之间相互依靠,好比当列表框中的某一项被选中时,UILabel 会被更新为列表框中选定的值。又大概当用户在文本框输入了新的值时,须要将这个新的值参加到列表框的列表中。当更多的 UI 元素到场到这一错综复杂的关系之中时,环境大概变得难以控制,元素之间须要相互相识并相互操纵。又大概当从一个页面跳转到另一个页面时,须要相识目标页面所需参数等等。这个时间须要有一个会集化的脚色组织各种 UI 元素在同一个语境下举行交互,称之为中介者(Mediator)
什么是中介者模式

    在面向对象的筹划中鼓励把举动分散到差别对象中,这种分散大概导致对象之间的相互接洽。在最糟糕的环境下,全部对象都相互相识并相互操纵。固然把举动分散到差别对象增强了可复用性,但是增长的相互关联又镌汰了得到的益处。在这种环境下就须要中介者模式。中介者模式提供了一个中介类作为会集的场所,用一个中介对象来封装一系列的对象交互,中介者使各对象不须要显式地相互引用,从而使其耦合疏松,而且可以独立地改变它们之间的交互
什么时间利用中介者模式


  • 对象之间的交互固然界说明确但优劣常复杂,导致一组对象相互相互依靠,形成了网状结构。若一个对象发生改变,我们也须要跟踪与之相干联的对象,同时做出相应的处理。
  • 对象引用了很多其它对象并与其通讯,导致对象难以复用
  • 想要定制一个分布在多个类中的逻辑或举动,又不想天生太多子类。
中介者模式的优缺点

中介者模式的优点

  • 低落了类的复杂度,将一对多转化成了一对一。
  • 各个类之间的解耦。
  • 符合迪米特原则。(一个类对于其他类知道的越少越好)
中介者模式的缺点

随着体系规模的增大,中介者会越来越巨大,变得复杂难以维护。
Cocoa 中的中介者模式

    UIViewController是一个抽象类,可以对其举行子类化以管理特定视图。UIKit 框架还提供了UIViewController用于管理导航栏和工具栏对象的子类:UINavigationController和UITabBarController.  一个 UITabController 可以管理多个 UINavigationController,而这些UINavigationController又可以管理一个或多个 UIViewController,每个控制器都有其关联的视图对象。除了管理视图(包罗覆盖视图)之外,视图控制器还指定导航栏中表现的按钮和标题。
中介者模式的实现

<ol>界说中介者和对象服从的协议
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 12:16, Processed in 0.146446 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表