内容简介:其实第2个缺点是可以避免的,我们可以调整plist文件中的类的顺序,来实现模块的调用顺序。我们拿FRDModuleManager的demo中的plist文件来验证一下。对应下面的调用日志对应下面的调用日志
- 1、每个模块都要初始化并分配内存,当FRDModuleManager里注册了大量模块时,会创建大量对象并影响App启动速度。
- 2、缺少模块初始化优先级,当有三个模块A,B,C时,正好C依赖于B,B依赖于A,如果在配置文件中配置A,B,C的顺序又是打乱时,初始化会出问题。
其实第2个缺点是可以避免的,我们可以调整plist文件中的类的顺序,来实现模块的调用顺序。我们拿FRDModuleManager的demo中的plist文件来验证一下。
顺序一:FRDGroupModule在上面
对应下面的调用日志
顺序二:FRDGroupModule在下面
对应下面的调用日志
方案二: JSDecoupledAppDelegate
JSDecoupledAppDelegate是由 JSBadgeView 的作者开发的一款轻量级的AppDelegate解耦工具。它将AppDelegate各个功能点独立出来,并通过代理的方式将控制权下发。实现原理,利用Objective-C的消息转发机制,转发AppDelegate的各个方法来实现AppDelegate的解耦的
使用:参考 github 文档
优点:
- 1、JSDecoupledAppDelegate本身对于AppDelegate各个功能的拆分对我们理解AppDelegate有一定帮助——AppDelegate确实承载了太多的功能。
- 2、由于各个子代理对象的执行顺序是确定的,因此基本可以解决FRDModuleManager中相互依赖的问题。
缺点:
JSDecoupledAppDelegate的缺点非常明显:使用它必须废弃原生的AppDelegate,因此我们不能通过 ((AppDelegate *)[UIApplication sharedApplication].delegate).window
来获取window,以及window的rootViewController。
方案三:AppDelegate分类(Category)
优点:
不需要添加任何三方库,我们就可以给 AppDelegate
添加很多方法,并且能轻松控制方法的执行顺序
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 解耦并不难 - 单体系统中的解耦
- 解耦并不难:分布式系统中的解耦
- AppDelegate解耦
- 聊聊AppDelegate解耦
- AppDelegate解耦
- 巧用Fragment解耦onActivityResult
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
CSS3专业网页开发指南
Peter Gasston / 李景媛、吴晓嘉 / 人民邮电出版社 / 2014-3-1 / 45.00元
《CSS3专业网页开发指南》是英国著名Web前端开发工程师Peter Gasston对CSS3高级技术的全面介绍。书中既有CSS3的发展历史、基本语法等入门知识介绍,也涵盖了媒体查询、选择器、伪类与伪元素、网页字体、文本排版、图形处理、动画、布局等CSS3前端开发必不可少的知识,还介绍了CSS3的未来发展方向。全书共分为17章,作者在每一章的讲解中都结合了大量的实例,同时也不忘介绍每一项技术的发展......一起来看看 《CSS3专业网页开发指南》 这本书的介绍吧!
SHA 加密
SHA 加密工具
HEX HSV 转换工具
HEX HSV 互换工具