数据刷新究竟应该发生在哪?ViewController内部,还是开放Api让外部调用

做程序设计,慢慢的发现一个问题,当我设计一个viewController的时候,往往会存在两种刷新的情况,1.viewController第一次加载的时候数据需要刷新,2.主动或被动刷新已经存在的数据的时候。

如果是1,那么就可能需要开放一个API 给外部调用,而二显然是写在类里面好...虽然可以写相同的方法,让内部外部同时调用,但是显然不干净,怎么办呢?其实为了低耦合高内聚的基本设计模式思想,应该果断只写程序内部的逻辑!因为我们应该把相关的逻辑尽量封闭在viewController内部,那么1的情况怎么办,很简单,几乎多有的viewController绑定的UI在第一次加载是都需要做数据刷新,那么情况就很简单了,在viewDidLoad里面进行首次刷新就OK,如果这个时候用于数据刷新的句柄not ready怎么办?这就是程序架构设计的问题了,要让viewController加载前就能拿到用于刷新的全部句柄,这样viewController就可以在初次加载时内部刷新。那么会有做不到的情况么比如说我viewController展示的是一个用户的明细信息,加载viewController的时候用户ID可能还没有load出来呢?呵呵,那就得考虑了,为什么id都没有的情况下要先show detail page?这个时候是不是一个大大的loading就够了呢?所以设计模式是指导思想,当自己的架构需求和指导思想相违背的时候就要退一步看看设计的架构是不是合理,因为,设计模式是千锤百炼的萃取,前人花了那么多时间积累的经验教训一定有它的道理,碰到问题多从架构上分析往往能得到更好的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值