html5网站检测最近的国际新闻热点
web/
2025/9/30 21:34:13/
文章来源:
html5网站检测,最近的国际新闻热点,网站页面设计师,长春火车站电话咨询电话声明#xff1a;本系列文章内容摘自《iOS设计模式》 中介者模式 用一个对象来封装一系列对象的交互方式。中介者使个对象不需要显式地相互调用#xff0c;从而使其耦合松散#xff0c;而且可以独立地改变它们之间的交互。 何时使用中介者模式 1.对象间的交互虽定义明确然而非…声明本系列文章内容摘自《iOS设计模式》 中介者模式 用一个对象来封装一系列对象的交互方式。中介者使个对象不需要显式地相互调用从而使其耦合松散而且可以独立地改变它们之间的交互。 何时使用中介者模式 1.对象间的交互虽定义明确然而非常复杂导致椅子对象彼此相互依赖而且难以理解 2.因为对象引用了许多其他对象并与其通信导致对象难以复用 3.想要制定一个分布在多个对象中的逻辑或行为又不想生成太多子类。 举个例子 有三个视图我们可能需要两两之间进行跳转类比于公司内同时每两个人都有可能进行业务上的交流。如果不借助通讯工具的话公司内的每个人都需要相互认识。如果我们使用tabbarcontroller这一控件三个是图相互切换就可以通过tabbar这一工具来实现简化了两两跳转的复杂逻辑。类比于公司同事使用QQ群或者微信群进行业务交流。 简单的代码说明 目录结构 三个控制器中没有代码仅在tabbarcontroller中将它们添加进去。 PatternRootViewController.h #import UIKit/UIKit.htypedef enum
{kButtonTagFirst,kButtonTagSecond,kButtonTagThird
}ButtonTag;interface PatternRootViewController : UITabBarController(PatternRootViewController *)sharedInstance;
endPatternRootViewController.m #import PatternRootViewController.h
#import FirstViewController.h
#import SecondViewController.h
#import ThirdViewController.h
interface PatternRootViewController ()endimplementation PatternRootViewController- (void)viewDidLoad {[super viewDidLoad];self.title 中介者模式;FirstViewController *firstVC [[FirstViewController alloc] init];firstVC.tabBarItem.title 页面一;SecondViewController *secondVC [[SecondViewController alloc] init];secondVC.tabBarItem.title 页面二;ThirdViewController *thirdVC [[ThirdViewController alloc] init];thirdVC.tabBarItem.title 页面三;self.viewControllers [firstVC,secondVC,thirdVC];
}#pragma mark - 创建实例
(PatternRootViewController *)sharedInstance
{static PatternRootViewController *sharedCoordinatingController nil;static dispatch_once_t predicate;dispatch_once(predicate,^{sharedCoordinatingController [[self alloc] init];});return sharedCoordinatingController;
}end总结 虽然对于处理应用程序的行为分散与不同对象并且对象相互依存的情况中介者模式非常有用但是应该注意避免让中介者类过于庞大而难以维护。转载于:https://www.cnblogs.com/wlsxmhz/p/6109304.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84664.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!