[大餐]开发摘记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的基本的知识,让 ...
随机推荐
- Java集合详解(全)
Java的集合主要有List , Set, Map List , Set继承至Collection接口,Map为独立接口 List下有ArrayList,LinkedList,Vector Set下有 ...
- goweb-访问数据库
访问数据库 对许多Web应用程序而言,数据库都是其核心所在.数据库几乎可以用来存储你想查询和修改的任何信息,比如用户信息.产品目录或者新闻列表等. Go没有内置的驱动支持任何的数据库,但是Go定义了d ...
- apt源换国内源
vim /etc/apt/sources.list deb http://mirrors.163.com/debian/ jessie main non-free contribdeb http:// ...
- JS 2019-12-03T15:53:23.000+08:00 转化为 YYYY MM DD
js时间格式转化 2019-12-03T15:53:23.000+08:00 转化为 YYYY MM DD var dateee = new Date(createTime).toJSON();var ...
- springmvc 实现文件上传
1.添加jar包 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io&l ...
- centos 7 安装及配置vsftpd
一.防火墙开放21端口 二.创建FTP用户,创建完用户后在/etc/passwd里是这样呈现的:ftpuser:x:1008:1008::/var/www/html:/sbin/nologin 三.y ...
- shiro PermissionUtil
package org.linlinjava.litemall.admin.util; import org.apache.shiro.authz.annotation.RequiresPermiss ...
- C#面向对象---对象成员、方法加载、引用类库
一.方法重载: 1.两个函数同名,就互相构成方法的重载关系 2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数 二.字段与属性 类的字段: 类里面是可以直接定义变量的,这些变量就叫类的字段 ...
- D - Project Presentation(DFS序+倍增LCA)
You are given a tree that represents a hierarchy in a company, where the parent of node u is their d ...
- git 学习系列(一)
目录 git 简介 git的升级 建立仓库 克隆仓库 查看主机名 查看仓库初始状态 将文件提交到暂存区 查看修改详情 提交修改 查看修改记录 查看个人配置信息(在 .gitconfig 文件中) 查看 ...