C#设计模式07-桥接模式

桥接模式是一种设计模式,用于在两个独立变化的维度上分离类结构。在图像浏览系统中,例如支持跨平台(Windows, Unix, Linux)并显示不同格式(JPG, PNG, GIF)的图像,这种模式可以提高扩展性。通过抽象关联,Image类持有ImageImp类引用,实现操作系统的图像格式转换。桥接模式适用于识别出两个独立变化的维度并需要独立扩展的情况。" 112108864,10559163,自定义ECharts坐标轴范围,"['ECharts', '数据可视化', 'Python绘图', '坐标轴']
摘要由CSDN通过智能技术生成

桥接模式,从字面意思上说就是用一条桥梁来链接两个不同的事物。专业一点讲,就是当一个类存在独立变化的两个维度的时候,可以将这两个维度分离出,设计成独立的继承结构,使他们可以独立扩展。桥接模式用一种巧妙的方式(用抽象关联代替传统的多重继承)解决了多重继承存在的问题。

假如说现在要开发一个图像浏览系统,要求可以显示JPG,PNG,GIF等格式的图像,同时系统要跨平台,要求能在Windows,Unix,Linux等操作系统下面展示,不同的操作系统可以把不同的图片转换成像素矩阵,然后在系统中显示,这个时候我们可以理解成浏览系统(类)里面有两个独立变换的维度,一个是图像格式,一个操作系统,他们都可以独立扩展。这个时候为了保证系统的扩展性和灵活性,就可以采用桥接模式来连接这两个独立变化的维度。如果把这两个维度写在一起,用传统的继承方式解决的话,系统的扩展性会很差。

接下来看看系统的类图吧



我们给不同格式的图片抽象了一个父类,给不同的操作系统抽象了一个父类,客户端针对Image编程,一般情况下Image类是抽象类。然后看一下具体的代码吧

显示Image类和它的子类的代码

    abstract class Image//客户端针对它编程
    {
        protected ImageImp imp;
        public void SetImage(ImageImp imp)
        {
            this.imp =
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值