盒子
盒子

[大餐]开发摘记1--我的Fragment通信的框架

声明:博文未经授权一律不允转载

如果把通信比作钓鱼,如果每次都有鱼上钩,那么我想可以分为以下四种:

  • 1.鱼钩上不钩饵料,然后抛出去,钩到鱼了,这时候鱼线断了,连线带钩和鱼都没了。
  • 2.鱼钩上钩上饵料,然后抛出去,钩到鱼了,这时候鱼线断了,连线带钩和鱼带饵料都没了。
  • 3.鱼钩上不钩饵料,然后抛出去,钩到鱼了,这时候鱼线没断,连线带钩和鱼带饵料都拉回来了。
  • 4.鱼钩上钩上饵料,然后抛出去,钩到鱼了,这时候鱼线没断,连线带钩和鱼带饵料都拉回来了。

其实这四种就可以对应着四种不同的通信:

  • 1.A向发了一个空的通知让B响应了,A不需要知道B是否响应(鱼线断了)。
  • 2.A向发了一个携带参数的通知让B响应了,A不需要知道B是否响应(鱼线断了)。
  • 3.A向发了一个空的通知让B响应了,A需要知道B是否响应,最终A得到了B响应结果(鱼线完好,成功回收)。
  • 4.A向发了一个携带参数的通知让B响应了,A需要知道B是否响应,最终A得到了B响应结果(鱼线完好,成功回收)。

再说的简单一点,那就是:

  • 1.调用“void func()”方法,无参无返回值。
  • 2.调用“void func(P p)”方法,有参无返回值。
  • 3.调用“R func()”方法,无参有返回值。
  • 4.调用“R func(P p)”方法,有参有返回值。

因为通信无非就是这四种方法,那么就可以抽象出来的这四类方法的类,如果使用四个容器装着,在合适的时候往里添加,并且在合适的时候取出来调用,那么势必可以变成一个解耦通信框架。

后面会陆续记录开发这个小框架的心路历程。


项目地址:

https://github.com/halohoop/Fishing

已经可以正常使用了。

支持一下
扫一扫,支持Halohoop