美文网首页
桥接设计模式

桥接设计模式

作者: gczxbb | 来源:发表于2019-04-10 23:47 被阅读0次

    一、概念

    分离抽象部分和实现部分,将系统中两个独立变化的聚合关联的维度抽象出来。将两个维度在抽象层建立关联,通过子类进行扩展,维度间解耦,具体类改变,不会影响其他。

    Android系统使用桥接模式的场景,常用的ListView和Adapter。ListView和GridView都继承AbsListView抽象类,排列视图集合,负责具体的排列方式,这是一个第一个维度,Adapter提供负责提供每一个ItemView视图,这是第二个维度。
    两个维度关联,抽象类AbsListView中包含ListAdapter对象,通过setAdapter方法设置。ListAdapter接口的子类BaseAdapter,可以扩展CursorAdapter和ArrayAdapter以及用户自定义Adapter,桥接设计模式结构图。
    AbsListView是一种关联ListAdapter的AdapterView,从根源上讲,它的父类AdapterView<Adapter>泛型类才是基类,AbsListView<ListAdapter>只是其中的一类扩展。

    桥接模式设计图

    ListAdapter的子类,可以扩展出任意我们需要的子视图。
    AbsListView的子类,可以将视图集合按照我们任意的想法排列,因此,以上两个维度可以无限扩展,并且独立,即桥接设计模式。
    Android系统中,另一个桥接模式是Window和WindowManager,Window是一个抽象类,在手机设备上PhoneWindow类,WindowManager是一个接口,管理窗体状态和视图,WindowManagerImpl实现类,委托给WindowManagerGlobal。
    Window窗体关联WindowManager,不同的设备可以扩展不同的窗体,在WindowManager的维度,也可以有不同的实现。

    二、设计模式中的几种关系

    关联关系,单纯的包含关系,引用。没有整体和部分一说。
    聚合关系,整体包含部分,部分可以脱离整体对立存在。
    组合关系,部分脱离整体不会单独存在。
    依赖关系,方法参数传入依赖对象。
    接口实现。
    继承关系。


    任重而道远

    相关文章

      网友评论

          本文标题:桥接设计模式

          本文链接:https://www.haomeiwen.com/subject/livwiqtx.html