首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
移动开发
> 详细
移动App开发中的View解耦问题
时间:
2015-01-06 13:53:50
阅读:
131
评论:
0
收藏:
0
[点我收藏+]
标签:
这几天在做给IOS代码降耦的事情,顺便唠叨几句开发中的View解耦问题。
首先,我们先定位一下View的角色:View应该只操心前/后景色,字体属性,布局特性,x/y/width/height等纯视觉属性。不应该操心数据加载、修改,事件响应等Model和Controller关心的事。当然,也包括自定义的View。
接下来讨论针对这个角色在实际开发中如何降低View部分耦合对整体架构的冲击。
1、View的初始化、属性设置应该有自己的Owner,不应该放到Controller中去。当然,这个工作可能由Android中的XML布局或IOS中的Xib来替代。Controller只负责拿到View的引用做后续的设置默认数据,安装Listener等操作就可以了。
2、数据提供和更新刷新,都应该由Controller触发,如果数据比较复杂,像列表、宫格等,应该添加Adapter层来做Model和View的解耦。
3、事件的触发应该通过Listener来实现View与Controller的解耦,不要把事件对应的逻辑直接写到View中去,那会影响View的重用性,使代码难于维护。
4、把屏幕适配的问题在View内部解决,不要在Controller中去做。比如Android中的XML中实现灵活布局,或者IOS中使用AutoLayout。
最后说一下实际操作。
Android中提供了XML布局其实变相做了强制解耦,使得我们使用过程中很少会在View中混杂其它代码,我们只需要注意当View的Model比较复杂时,增加Adapter层来解耦就可以了。
而IOS中由于历史原因普遍采用的代码生成View,会导致在Controller中生成View,设置View属性,以及在View中实现功能逻辑等MVC耦合的现象比较严重。鉴于Storyboard对Controller限制较多,这里建议在在大型IOS项目中,参照Android的方式,通过Xib提供View布局,并把View实例通过IBOutlet映射到Controller中,通过Controller加载数据并安装Listener。不要在Controller中出现操作View的视觉属性的代码。
移动App开发中的View解耦问题
标签:
原文地址:http://blog.csdn.net/a345017062/article/details/42456883
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
关闭苹果IOS app自动更新
2021-07-29
开发一个即时通讯App
2021-07-28
iOS 跳转App Store进行评分
2021-07-26
诺基亚短信生成!太好玩了
2021-07-26
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
2021-07-26
Android系统编程入门系列之界面Activity响应丝滑的传统动画
2021-07-26
uniapp h5,app两端复制文本
2021-07-22
uni-app滚动视图容器(scroll-view)之监听上拉事件
2021-07-21
新型横向移动工具原理分析、代码分析、优缺点以及检测方案
2021-07-19
Android系统编程入门系列之界面Activity交互响应
2021-07-19
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!