[大餐]开发摘记1--我的Fragment通信的框架
[大餐]开发摘记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通信的框架的更多相关文章
- 【百度地图开发之二】基于Fragment的地图框架的使用
写在前面的话: [百度地图开发之二]基于Fragment的地图框架的使用(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmji ...
- Android开发之漫漫长途 XII——Fragment详解
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- Android UI开发第二十八篇——Fragment中使用左右滑动菜单
Fragment实现了Android UI的分片管理,尤其在平板开发中,好处多多.这一篇将借助Android UI开发第二十六篇——Fragment间的通信. Android UI开发第二十七篇——实 ...
- iOS开发之使用XMPPFramework实现即时通信(三)
你看今天是(三)对吧,前面肯定有(一)和(二),在发表完iOS开发之使用XMPPFramework实现即时通信(一)和iOS开发之使用XMPPFramework实现即时通信(二)后有好多的小伙伴加我Q ...
- iOS开发之使用XMPPFramework实现即时通信(二)
上篇的博客iOS开发之使用XMPPFramework实现即时通信(一)只是本篇的引子,本篇博客就给之前的微信加上即时通讯的功能,主要是对XMPPFramework的使用.本篇博客中用到了Spark做测 ...
- iOS开发多线程篇—线程间的通信
iOS开发多线程篇—线程间的通信 一.简单说明 线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特定任 ...
- Android开发之漫漫长途 XIII——Fragment最佳实践
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- 我的长大app开发教程第一弹:Fragment布局
在接下来的一段时间里我会发布一个相对连续的Android教程,这个教程会讲述我是如何从零开始开发“我的长大”这个Android应用. 在开始之前,我先来介绍一下“我的长大”:这是一个校园社交app,准 ...
- iOS开发之使用XMPPFramework实现即时通信
iOS开发之使用XMPPFramework实现即时通信 关于XMPP的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入XMPP协议来实现通信呢?下面将会介绍一下XMPP的基本的知识,让 ...
随机推荐
- HDU -1166 线段树
#include <algorithm> #include <iostream> #include<sstream> #include<cstring> ...
- 解决DIV超出样式长度自动换行
width: 100px;display:block;word-break: break-all;word-wrap: break-word;
- MACOSX下查看某个端口被哪个程序占用及杀进程方法
sudo lsof -i :9000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 61342 a 313u IPv6 0x11111 ...
- Cobbler_自动装系统
Cobbler —自动装系统的操作步骤 Cobbler是一款自动化操作系统安装的实现,与PXE安装系统的区别就是可以同时部署多个版本的系统,而PXE只能选择一种系统. Cobbler 的安装 # 在一 ...
- CCP 协议
转载 1. CCP协议概述 CCP(CAN Calibration Protocol)是一种基于CAN总线的匹配标定协议.ECU都需要经过匹配标定的过程,从而确定其运行参数和控制参数.有时为了实现对 ...
- Notes_STL_List_And_Map
//Description: 使用STL遇到的问题 //Create Date: 2019-07-08 09:19:15 //Author: channy Notes_STL_List_And_Map ...
- 5)void万能指针
函数参数为空,定义函数时,可以使用void来修饰:int fun(void) 函数没有返回值:void fun(void) 不同定义void类型的普通变量:void a //原因是,无法确定类 ...
- 吴裕雄--天生自然C语言开发:约瑟夫生者死者小游戏
个人在一条船上,超载,需要 人下船. 于是人们排成一队,排队的位置即为他们的编号. 报数,从 开始,数到 的人下船. 如此循环,直到船上仅剩 人为止,问都有哪些编号的人下船了呢? #include&l ...
- 2017Google开发者大会
2017年12月14日有幸去上海跨国采购中心参加了2017Google开发者大会,这个大会有很多很有意思的展会以及技术分享.主题涵盖 Android.移动网络.Firebase.机器学习.云服务.AR ...
- PAT甲级——1009 Product of Polynomials
PATA1009 Product of Polynomials Output Specification: For each test case you should output the produ ...