多态和继承使用的经典场景

需求:

当前页面请求数据监听到登录过期,需要先登录然后返回当前页面,并刷新数据

思路:

监听登录过期:

项目中往往会封装网络请求类,在封装的get,post方法中监听,然后发出通知即可。

登录成功返回当前页面并刷新:

在每个类监听通知,然后登陆成功返回刷新也能做到,但是工作量大,耦合严重。
既然所有的控制器都要求监听登录过期的通知,那么可以用继承,继承基类,在基类里监听登录过期。同样,请求数据的方法可以放到基类中。收到登录过期通知->去登陆->发出登录成功通知->在基类中监听登录成功的通知->调用请求数据的方法。

现在又有问题,所有继承基类的VC都会收到登录过期和登录成功的通知。
那么多态用上了
解决思路:
在AppDelegate中监听登录过期和登录成功的通知,登录过期时获取最上层控制器,并声明属性baseVC *topVC,然后去登录,登录成功返回,topVC调用数据源方法刷新数据。
注意:如果topVC为真,说明已经去登录,再收到登录过期的通知不要再去登录,登录成功之后将topVC置为nil

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容