内容简介:iOS开发中的Self-Manager设计模式
本文的灵感来自 http://blog.sunnyxx.com/2015/12/19/self-manager-pattern-in-ios/
这种模式的意义就是自己的事情自己做完,不要去给别人添麻烦,让你的功能纯粹点。
举个栗子 :你要实现一个分享功能。可能你很多地方都需要分享,那你不可能每个地方都去写一遍对不对,所以这时候你需要把分享功能抽离出来对不对,让它纯粹。
+ (void)wxShareWithImages:(NSArray *)images shareTitle:(NSString *)shareTitle shareContent:(NSString *)shareContent shareURLString:(NSString *)shareURLString response:(KZWResponseCallback)response;
你只要单独出来一个shareservice这样你不管在哪分享只要调用这个方法就可以了什么都不用管。然后你就可以发现你可以把你app的很多服务抽出来,减少冗余代码。 纯粹 !
再举个栗子 就是作者原文的栗子,为什么我要举相同的栗子呢,因为我还有话说:微博的头像到处都有,都需要点击头像跳转个人中心,以及包括头像的各种大v特效等。
代码是这样的:
- (void)selfManagedConfigureWithAvatarURL:(NSURL *)URL VIPInfo:(id)info UID:(NSString *)UID {
[self configureWithAvatarURL:URL VIPInfo:info tapped:^{
// 假设 App 结构是 Root -> TabBar -> Navigation -> ViewController
UITabBarController *tabBarControler = (id)[UIApplication.sharedApplication.delegate.window.rootViewController;
UINavigationController *navigationController = tabBarControler.selectedViewController;
// 创建用户信息 View Controller
FDUserProfileViewController *profileViewController = [FDUserProfileViewController viewControllerWithUID:UID];
[navigationController pushViewController:profileViewController animated:YES];
}];
}
大家会发现一个问题,跳转写在view里了。
大家都知道跳转的方法需要调用controller,在view里是没有的,需要去声明很不方便对不对,这时候你就需要router,各种跳随便跳,哈哈哈。让你的self-mannage更纯粹。
最后举个栗子 :大家的app里都有很多webview对不对,是不是一个webview声明了一个controller。其实不需要,只需要一个controller,把url传进去就重新打开一个webview就不需要那么多controller了,然后我们可以在里面把router应用进去。这样你就可以做到,webview的导航栏,是否需要返回,是否需要titler,是否需要传完整的url还是只需要传path,以及测试还是线上环境等都成为可配。这样是不是很爽,哈哈哈。让你的self-mannage更纯粹。
我这里也只是对这种 设计模式 的一个扩展,抛砖引玉一下,希望你也能爽。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
凸优化
Stephen Boyd、Lieven Vandenberghe / 王书宁、许鋆、黄晓霖 / 清华大学出版社 / 2013-1 / 99.00元
《信息技术和电气工程学科国际知名教材中译本系列:凸优化》内容非常丰富。理论部分由4章构成,不仅涵盖了凸优化的所有基本概念和主要结果,还详细介绍了几类基本的凸优化问题以及将特殊的优化问题表述为凸优化问题的变换方法,这些内容对灵活运用凸优化知识解决实际问题非常有用。应用部分由3章构成,分别介绍凸优化在解决逼近与拟合、统计估计和几何关系分析这三类实际问题中的应用。算法部分也由3章构成,依次介绍求解无约束......一起来看看 《凸优化》 这本书的介绍吧!