美文网首页
设计模式之桥接模式

设计模式之桥接模式

作者: 过期的薯条 | 来源:发表于2020-02-22 15:08 被阅读0次

1.引言

无意间,看到公司的人使用了桥接模式完成了一个功能模块,代码调理清晰,写的很不错。于是有了这篇梳理性文章。

2.正题

2.1 定义

桥接模式顾名思义,需要连接俩端。而且这俩端都需要进行拓展。例如RecycleView的布局,需要viewHolder和layoutManager 俩个维度。俩个维度相互搭配,形成不同的布局。这个时候就需要使用桥接模式。

2.2 UML图

image.png

interface1,interface2代表俩个维度的抽象。其下有很多实现类

2.3 实例

维度1: IViewHolder 获取不同类型的布局

public interface IViewHolder {
    public View onCreateViewHolder();
    public void bindViewHolder();
}

维度1 实现的俩个类:

public class TitleViewHolder implements IViewHolder {

    public ILayoutManager iLayoutManager;

    public TitleViewHolder(ILayoutManager iLayoutManagerImp) {
        this.iLayoutManager=iLayoutManagerImp;
    }

    @Override
    public View onCreateViewHolder() {

        System.out.println("占据的spansize: "+iLayoutManager.getSpanSize());
        return null;
    }

    @Override
    public void bindViewHolder() {

    }
}
public class ListViewViewHolder implements IViewHolder {
    public ILayoutManager iLayoutManager;

    public ListViewViewHolder(ILayoutManager iLayoutManagerImp) {
        this.iLayoutManager=iLayoutManagerImp;
    }


    @Override
    public View onCreateViewHolder() {
        return null;
    }

    @Override
    public void bindViewHolder() {

    }
}

维度2 接口

public interface ILayoutManager {
    
    public int getSpanSize();

    public void setWidth(int width);

    public void setHeight(int height);
}

实现类:

public class ListViewLayoutManager implements ILayoutManager {
    public int width = 0;
    public int height = 0;

    @Override
    public int getSpanSize() {
        return 20;
    }

    @Override
    public void setWidth(int width1) {

        width = width1;
    }

    @Override
    public void setHeight(int height1) {
        height = height1;
    }
}
public class TitleLayoutManager implements ILayoutManager {
    public int width = 0;
    public int height = 0;

    @Override
    public int getSpanSize() {
        return 20;//占据20个spanSize
    }

    @Override
    public void setWidth(int width1) {

        width = width1;
    }

    @Override
    public void setHeight(int height1) {
        height = height1;
    }
}

桥接类:


public class AdapterBridge {


    public static void main(String args[]){

        ILayoutManager manager=new TitleLayoutManager();
        IViewHolder mIViewHolder=new TitleViewHolder(manager);


        ILayoutManager manager1=new ListViewLayoutManager();
        IViewHolder mIViewHolder1=new ListViewViewHolder(manager);


        mIViewHolder.onCreateViewHolder();
    }
}

相关文章

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式之桥接模式

    设计模式之桥接模式 Intro 桥接模式(Bridge),将抽象部分与它的实现部分分离,使得它们都可以独立地变化。...

  • 设计模式——桥接模式

    设计模式——桥接模式 最近公司组件分享设计模式,然而分配给我的是桥接模式。就在这里记录我对桥接模式的理解吧。 定义...

  • 设计模式之桥接模式

    桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化。优先使用对象的合成/聚合将有助于你...

  • 设计模式之桥接模式

    桥接模式:将抽象部分与他实现部分分离,使它们可以独立。 UML图: 使用场景:1、如果一个系统需要在构件的抽象化角...

  • 设计模式之桥接模式

    桥接模式 人的抽象类,这类人喜欢投资 美国人的投资方式 毁天灭地的中国大妈类,所到之处寸草不生 资产接口 , 具有...

  • 设计模式之桥接模式

    定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。下面用一个实例来说明下这个模式,例如。我们要绘制三个图...

网友评论

      本文标题:设计模式之桥接模式

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