[大餐]开发摘记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

已经可以正常使用了。

关闭

[大餐]开发摘记1--我的Fragment通信的框架的更多相关文章

  1. 【百度地图开发之二】基于Fragment的地图框架的使用

    写在前面的话: [百度地图开发之二]基于Fragment的地图框架的使用(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmji ...

  2. Android开发之漫漫长途 XII——Fragment详解

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  3. Android UI开发第二十八篇——Fragment中使用左右滑动菜单

    Fragment实现了Android UI的分片管理,尤其在平板开发中,好处多多.这一篇将借助Android UI开发第二十六篇——Fragment间的通信. Android UI开发第二十七篇——实 ...

  4. iOS开发之使用XMPPFramework实现即时通信(三)

    你看今天是(三)对吧,前面肯定有(一)和(二),在发表完iOS开发之使用XMPPFramework实现即时通信(一)和iOS开发之使用XMPPFramework实现即时通信(二)后有好多的小伙伴加我Q ...

  5. iOS开发之使用XMPPFramework实现即时通信(二)

    上篇的博客iOS开发之使用XMPPFramework实现即时通信(一)只是本篇的引子,本篇博客就给之前的微信加上即时通讯的功能,主要是对XMPPFramework的使用.本篇博客中用到了Spark做测 ...

  6. iOS开发多线程篇—线程间的通信

    iOS开发多线程篇—线程间的通信 一.简单说明 线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特定任 ...

  7. Android开发之漫漫长途 XIII——Fragment最佳实践

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  8. 我的长大app开发教程第一弹:Fragment布局

    在接下来的一段时间里我会发布一个相对连续的Android教程,这个教程会讲述我是如何从零开始开发“我的长大”这个Android应用. 在开始之前,我先来介绍一下“我的长大”:这是一个校园社交app,准 ...

  9. iOS开发之使用XMPPFramework实现即时通信

    iOS开发之使用XMPPFramework实现即时通信   关于XMPP的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入XMPP协议来实现通信呢?下面将会介绍一下XMPP的基本的知识,让 ...

随机推荐

  1. Java基础篇 - 强引用、弱引用、软引用和虚引用

    Java基础篇 - 强引用.弱引用.软引用和虚引用 原创零壹技术栈 最后发布于2018-09-09 08:58:21 阅读数 4936 收藏展开前言Java执行GC判断对象是否存活有两种方式其中一种是 ...

  2. 20199324《Linux内核原理与分析》第十一周作业

    SET-UID程序漏洞实验 一.实验简介 Set-UID 是 Unix 系统中的一个重要的安全机制.当一个 Set-UID 程序运行的时候,它被假设为具有拥有者的权限.例如,如果程序的拥有者是root ...

  3. 小程序中map的取值和赋值

    1.初始化 resultMap: { "near": [], "join": [], "publish": [] } 2.js中直接取 co ...

  4. memory barrier 内存栅栏 并发编程

    并发编程 memory barrier (内存栅栏) CPU级 1.CPU中有多条流水线,执行代码时,会并行进行执行代码,所以CPU需要把程序指令 分配给每个流水线去分别执行,这个就是乱序执行: 2. ...

  5. 十三、linux-mysql的mysql的核心优化思想

    一.数据库运维管理思想核心 1.未雨绸缪,不要停留在制度上,而是要实际做出来 2.亡羊补牢,举一反三,不要好了伤疤忘了疼 3.完善的框架设计及备份.恢复策略 4.定期思考,并实战模拟以上策略演练 二. ...

  6. [LC] 289. Game of Life

    According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...

  7. SSID

    无线网络中SSID,是路由器发送的无线信号的名字!如果你将你的无线路由器的SSID:命名为:gouwancheng ,那么当你的无线路由器开启,并启用了无线功能,和允许了SSID广播,那么你就可以轻易 ...

  8. GlobalExceptionHandler @ControllerAdvice

    package org.linlinjava.litemall.core.config; import org.apache.commons.logging.Log; import org.apach ...

  9. for in 循环获取json中的键(key)与值(value)

    一 .for in 循环 1.获取json中的键(key)与值(value): var data = {name:'张三',age:'20岁',sex:'男'}; for (var a in data ...

  10. HTML语言 网页制作-----标签、表格、表单、框架

    一:序 Html静态网页,内容(hyper text markup language,超文本标记语言) Css 网页美化 Javascript 脚本语言 二:html的介绍 <!DOCTYPE ...