什么是移动网桥网桥模式

网络(30)
WLAN(28)
WDS (Wireless Distribution System)无线分布式系统,是无线连接两个接入点(AP)的协议。在整个WDS无线网络中,把多个AP通过桥接或中继器的方式连接起来,使整个局域网络以无线的方式为主。
通常有以下应用:
以桥接方式无线连接两个局域网 扩展无线局域网的覆盖范围
Vigor 无线路由器可以实现以上两种模式,一种是桥接,另一种是中继。
下图显示WDS桥接功能:
下图显示WDS中继功能:
两种模式的主要不同点在于:对于中继模式, 从某一接入点接收的信息包可以通过WDS连接转发到另一个接入点。然而桥接模式,通过WDS连接接收的信息包只能被转发到有线网络或无线主机。换句话说,只有中继模式可以进行WDS到WDS信息包的转发。
如下图,连接到Bridge 1或Bridge 3的主机可以通过WDS链接和连接到桥2的主机通信。但是,连接到Bridge1的主机无法透过Bridge2与Bridge3主机相通。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18143次
排名:千里之外
转载:76篇
(5)(32)(11)(2)(1)(10)(17)理解设计模式之适配器模式、桥接模式 - 推酷
理解设计模式之适配器模式、桥接模式
两种模式都是结构型模式,而且从名字上,两种模式很容易混淆,都是中间搭桥去适配的感觉,但事实真的如此吗?下面就来分析一下这两个模式。
数据集合也是多样化的,但是数据常常以列表ListView形式展示,如何设计这样的ListView能支持所有的数据集合?
计算机科学领域的所有问题都可以通过增加一个间接中间层来解决,所以需要加一个层分别处理这些数据集合,而ListView依赖于这个层的抽象定义即可。
这个层就叫适配层,既要能对接一个ListView,也要不同类型数据集合注入到这层的具体实现类上:
// 适配层接口
publicinterfaceListAdapter{
intgetCount();
Object getItem(intposition);
View getView(intposition, View convertView, ViewGroup parent);
// 适配层实现一
publicclassArrayAdapterimplementsListAdapter{
privateList mO
publicArrayAdapter(List objects){
mObjects =
// 实现ListAdapter接口,对List类型的mObjects进行处理
// 适配层实现二
publicabstractclassCursorAdapterimplementsListAdapter{
protectedCursor mC
publicCursorAdapter(Cursor c){
// 实现ListAdapter接口,对Cursor类型的mCursor进行处理
而ListView只需要依赖于抽象的ListAdapter:
// 由client自行负责注入具体Adapter
publicclassListView{
ListAdapter mA
publicvoidsetAdapter(ListAdapter adapter){}
增加和删除新的适配实现以支持新的数据集合,并不会对系统造成影响。这就是适配器模式的最简单形态。
PS:以上代码并不与Android的ListView及其Adapter的具体代码完全一致,做了简化,但思想都是一致的。
更进一步,ListView展示也要多样化,既需要列表展示,还需要网格展示等等。
好吧,抽象一下ListView为AbsListView:
publicabstractclassAbsListView{
// 列表ListView
publicclassListViewextendsAbsListView{
// 网格ListView
publicclassGridViewextendsAbsListView{
// WaterfallListView,3DListView ...
现在基于AbsListView,我们横向实现了数据适配,纵向实现了布局扩展,是不是更像Android里的ListView那一套了?像这样既继承了某种抽象又组合了另外一种扩展的模式,就是桥梁模式。
PS:这里举的例子把两种模式混合在一起了,但实际上桥梁模式并不是建立在适配器模式的基础上,假如把ListAdapter换成其他任何一个非适配接口,那么不是适配器模式了,但这个AbsListView系统依然是桥梁模式。
适配器模式
将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
对象适配器
前面是对数据进行了适配,如果改为对行为的适配也是同一个道理:
publicinterfaceITarget{
voidrequest();
// 对应前面数据集合的类型,但是不是数据而是行为了,特此说明
publicclassAdaptee{
publicvoidspecificRequest(){
publicclassAdapterimplementsITarget{
publicvoidrequest(){
adaptee.specificRequest();
这里的Adapter通过组合的方式引用了Adaptee对象,称为对象适配器模式,UML类图如下:
如果Adpater不是组合Adaptee而是继承Adaptee来扩展Adaptee以支持新的接口,也能达到适配器模式的效果。
publicclassAdapterextendsAdapteeimplementsITarget{
publicvoidrequest(){
super.specificRequest();
像这种通过继承Adaptee实现,称为类适配器模式。UML类图如下:
可以看出,通过组合对象比继承实现的适配器模式耦合度更小,所以相对来说更推荐使用对象适配器模式。
将抽象部分与它的实现部分分离,使它们都可以独立地变化。
桥接模式在两个维度上以不同的方式(组合、继承)实现了功能扩展,巧妙的结合在一起,非常具有面向对象的“喜感”。
如果你不能理解“抽象部分”和“实现部分”,就把它们当成两个不同领域的功能吧。
实现部分,需要抽象一下:
publicinterfaceIImplementor{
voidoperationImpl();
publicclassImplementorAimplementsIImplementor{
publicvoidoperationImpl(){
publicclassImplementorBimplementsIImplementor{
publicvoidoperationImpl(){
抽象部分,也需要抽象一下,并且把实现部分组合进来:
publicabstractclassAbstraction{
publicvoidoperation(){
imp.operationImpl();
publicclassRefineAbstractionextendsAbstraction{
桥接模式展示了变化因素应该如何安排,UML类图如下:
另外,提两点注意:
桥接模式刚好分别用了组合、继承实现了一个二维的扩展,如果要扩充到三维,四维(就是需要支持新领域的扩展)如何处理呢?继承是无法再使用了,但是组合可以无线的添加,比如再组合IImplementor1, IImplementor2等等都是没有问题的。桥接模式已经包含了这种情况,这些IImplementor1,IImplementor2就是多个“实现部分”。显然,组合相比继承组装更轻量扩展更灵活。
当然可以纯用组合实现二维分离,但是系统往往已经存在大量的继承关系(当然这些继承是必须的),桥接模式将会比纯用组合代码简洁的多。
比较ListView和RecyclerView
说到这个是因为,有人站在ListView的基础上认为RecyclerView再搭配了LayoutManager是桥接模式的应用,但是并非如此。
从前面的分析可以看出,ListView模块是再经典不过的使用了桥接模式,然而RecyclerView模块只是纯粹的组合了LayoutManager,并没有使用桥接模式。
使用模式的多少和功能强大也是没有直接关系的,相对于ListView,RecyclerView的更加强大在于它分离了更多的变化便于扩展,增强了其高度定制性。
本文从ListView需求切入,依次演绎出适配器模式和桥接模式。经过分析,相信大家不仅能够区分它们,而且也能灵活的运用它们到你的工作中去了。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致君,已阅读到文档的结尾了呢~~
防火墙的网桥模式,网桥模式,路由器网桥模式,透明网桥模式,什么是网桥模式,网关模式 网桥模式,网桥和路由器的区别,网桥与交换机的区别,网桥的作用,网桥和交换机的区别
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
防火墙的网桥模式
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

参考资料

 

随机推荐