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

设计模式之桥接模式

作者: _凉笙 | 来源:发表于2017-12-07 16:43 被阅读0次

定义:
将抽象部分与它的实现部分分离,使它们都可以独立地变化。
下面用一个实例来说明下这个模式,例如。我们要绘制三个图形,球,正方体和胶囊体,我们用可以使用以下三个渲染引擎来渲染,OpenGL和DirectX以及SuperRender来渲染这三个图形,那么如何来设计这个程序可以使后期增加引擎或者图像的时候更加简单并且不修改而是扩展代码。下面就来看看下面的UML图,我们可以在三个图形和三个引擎上分别提取出来一个父类IShape和IRenderEngine,针对接口开发。


image.png

下面是代码的简单实现:

using UnityEngine;

public class DMBridge:MonoBehaviour
{
    private void Start()
    {
        IRenderEngine renderEngine = new DirectX();

        Sphere sphere = new Sphere(renderEngine);
        sphere.Draw();
        Cube cube = new Cube(renderEngine);
        cube.Draw();
        Capsule capsule = new Capsule(renderEngine);
        capsule.Draw();
    }
}
public class IShape
{
    public string Name;
    public IRenderEngine renderEngine;
    public IShape(IRenderEngine renderEngine)
    {
        this.renderEngine = renderEngine;
    }
    
    public  void Draw()
    {
        renderEngine.Draw(Name);
    }
}
//渲染引擎公共基类
public abstract class IRenderEngine
{
    public abstract void Draw(string name);
}

public class Sphere:IShape
{
    
 
    public Sphere(IRenderEngine re) : base(re)
    {
        Name = "Sphere";
    }

}
public class Cube:IShape
{
    public Cube(IRenderEngine re) : base(re)
    {
        Name = "Cube";
    }
}
public class Capsule:IShape
{
    public Capsule(IRenderEngine re) : base(re)
    {
        Name = "Capsule";
    }
}
public class OpenGl:IRenderEngine
{
    public override void Draw(string name)
    {
        Debug.Log("OpenGL绘制出来了:"+name);
    }
}
public class DirectX: IRenderEngine
{
    public override void Draw(string name)
    {
        Debug.Log("DirectX绘制出来了:" + name);
    }
}
将脚本挂在Camera上运行可以看到输出 image.png

如果这时候如果我想要更换渲染引擎的话就直接将Start方法里面的IRenderEngine修改成如下就OK

IRenderEngine renderEngine = new OpenGl();
image.png
这样以后修改或者增加功能就会变的非常的简单
桥接模式参考
http://blog.csdn.net/cooldragon/article/details/52173915

相关文章

  • 设计模式之桥接模式

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

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

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

  • 设计模式-桥接模式

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

  • 桥接模式

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

  • 设计模式之桥接模式

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

  • 设计模式——桥接模式

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

  • 设计模式之桥接模式

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

  • 设计模式之桥接模式

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

  • 设计模式之桥接模式

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

  • 设计模式之桥接模式

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

网友评论

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

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