Android为什么需要广播Broadcast
在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式就更多了,这样看来,广播机制似乎是多余的。然而,广播机制却是不可替代的,它和Binder机制不一样的地方在于,广播的发送者和接收者事先是不需要知道对方的存在的,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。
在软件工程中,是非常强调模块之间的高内聚低耦合性的,不然的话,随着系统越来越庞大,就会面临着越来越难维护的风险,最后导致整个项目的失败。Android应用程序的组织方式,可以说是把这种高内聚低耦合性的思想贯彻得非常透彻,在任何一个Activity中,都可以使用一个简单的Intent,通过startActivity或者startService,就可以把另外一个Activity或者Service启动起来为它服务,而且它根本上不依赖这个Activity或者Service的实现,只需要知道它的字符串形式的名字即可,而广播机制更绝,它连接收者的名字都不需要知道。
不过话又说回来,广播机制在Android系统中,也不算是什么创新的东西。如果读者了解J2EE或者COM,就会知道,在J2EE中,提供了消息驱动Bean(Message-Driven Bean),用来实现应用程序各个组件之间的消息传递;而在COM中,提供了连接点(Connection Point)的概念,也是用来在应用程序各个组间间进行消息传递。无论是J2EE中的消息驱动Bean,还是COM中的连接点,或者Android系统的广播机制,它们的实现机理都是消息发布/订阅模式的事件驱动模型,消息的生产者发布事件,而使用者订阅感兴趣的事件。
摘自:http://blog.csdn.net/luoshengyang/article/details/6730748
最新文章
- C++远征之封装篇(下)
- 疯狂java学习笔记之面向对象(四) - this关键字
- 配置NAT回流导致外网解析到了内网IP
- ExtJS笔记4 容器与布局(Layouts and Containers)
- iOS设计模式——Category
- Swiper API
- sql server varchar和nvarchar的区别
- 如何发送HTML表单数据
- Private Members in JavaScript
- C# ReferenceEquals(), static Equals(), instance Equals(), 和运算行符==之间的关系
- C语言随笔_区分=与==
- 基于visual Studio2013解决C语言竞赛题之1030计算函数
- 雅虎WEB前端网站优化 -- 34条军规
- MicroPython-GPS教程之TPYBoardv702控制5110显示当前经纬度
- linux下配置docker和splash(图文)
- Java 多线程 并发和并行
- 实现两个矩阵相乘的C语言程序
- 前端笔记 (3.JavaScript 1)
- Python: 用shell通配符匹配字符串,fnmatch/fnmatchcase
- HDU-1272 小希的迷宫 (并查集、判断图是否为树)
热门文章
- 在Windows下安装MongoDB
- tera term通过ttl脚本 自动连接服务器(转自http://www.cnblogs.com/wxb0328/p/teraterm.html)
- Ubuntu连接多台Ubuntu server的问题
- js中startWith、endWith 函数不能在任何浏览器兼容的问题
- java基础16 捕获、抛出以、自定义异常和 finally 块(以及关键字:throw 、throws)
- Linux中常用命令 <;一>;
- socket-----爬虫&;&;文件传输
- beego学习笔记(4):开发文档阅读(3)
- 新版Java为什么要修改substring的实现
- MYSQL-----流程控制 if() 函数的用法