C# 设计模式 之 桥接模式

原创 2007年09月17日 23:31:00

       桥接模式关注如何设计抽象类!
       主要目的是把一个抽象类与其抽象操作的实现进行分离。
       抽象类处于类层次结构的顶层位置,它定义了抽象的操作集,层次结构中的某些子类都为抽象操作集提供了不同的实现,这些操作集在一个接口中,另外还有子类沿着另外的方向,整个设计就是需要使用桥接模式。简单的说,处于顶层位置的抽象类的继承出现多方向,需要使用桥接模式。

using System;
using System.Collections.Generic;
using System.Text;

namespace Bridge
...{
    
/**//// <summary>
    
/// 打印方式
    
/// </summary>

    public abstract class PrintMethod
    
...{
        
public abstract void Print();
    }


    
/**//// <summary>
    
/// 横向方式
    
/// </summary>

    public class Across : PrintMethod
    
...{
        
public override void Print()
        
...{

            Console.WriteLine(
"--");
        }

    }


    
/**//// <summary>
    
/// 纵向方式
    
/// </summary>

    public class Upright : PrintMethod
    
...{
        
public override void Print()
        
...{
            Console.WriteLine(
"|");
        }

    }


    
/**//// <summary>
    
/// 机器
    
/// </summary>

    public abstract class Machine
    
...{
        
protected PrintMethod implementor;

        
public PrintMethod Implementor
        
...{
            
set ...{ implementor = value; }
        }


        
public virtual void Print()
        
...{
            implementor.Print();
        }

    }


    
/**//// <summary>
    
/// 打印机
    
/// </summary>

    public class Printer : Machine
    
...{
        
public override void Print()
        
...{
            implementor.Print();
        }

    }


    
/**//// <summary>
    
/// 复印机
    
/// </summary>

    public class Copycat : Machine
    
...{
        
public override void Print()
        
...{
            implementor.Print();
        }

    }


    
class Program
    
...{
        
static void Main(string[] args)
        
...{
            Machine machine 
= new Printer();
            machine.Implementor 
= new Across();
            machine.Print();

            machine 
= new Copycat();
            machine.Implementor 
= new Upright();
            machine.Print();

            Console.ReadLine();
        }

    }

}


【C#设计模式-桥接模式】

一.桥接模式定义: 桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化。 二.桥接模式的实现: 我先引进一个生活中的例子,这里引用一个电视遥控器的例子,对于每一个牌子的遥控器,都有对于的遥控器...
  • heyangyi_19940703
  • heyangyi_19940703
  • 2016年04月29日 11:23
  • 1243

大话设计模式—桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。主要解决:在有多种可能会变化的情况下,...
  • lmb55
  • lmb55
  • 2016年04月02日 15:27
  • 1502

设计模式(结构型)之桥接模式(Bridge Pattern)

桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在多个独立变化的维度,通过该模式可以将这多个维度分离出来,使他们可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将多个独...
  • yanbober
  • yanbober
  • 2015年04月29日 21:15
  • 3373

JAVA设计模式之 桥接模式【Bridge Pattern】

一、概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式。二、适用场景 处理多维度变化。 ...
  • l416112167
  • l416112167
  • 2015年03月06日 17:43
  • 3072

Android设计模式应用-桥接模式

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化 看看关系图: 实现代码: 先定义接口: public inter...
  • u014737138
  • u014737138
  • 2016年04月03日 21:18
  • 498

23种设计模式—之桥接模式

桥接是什么?是指在传统的抽象与实现之间建立一个桥梁,使它们各自分开,消除他们之间的依赖关系,使它们各自富于变化,而不相互不受影响。也就是说桥接模式将抽象和行为划分开来,各自独立,但能动态地结合。 ...
  • JavaWebRookie
  • JavaWebRookie
  • 2016年01月02日 22:39
  • 975

浅谈JAVA设计模式之——桥接模式(Bridge)

一、概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、适用性 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者...
  • l1028386804
  • l1028386804
  • 2015年05月03日 12:25
  • 5275

软件设计模式——桥接模式(Bridge)

定义与结构GOF 在《设计模式》中给桥接模式的定义为:将抽象部分与它的实现部分分离,使它们都可以独立地变化。这里的抽象部分和实现部分不是我们通常认为的父类与子类、接口与实现类的关系,而是组合关系。也就...
  • Jungle_hello
  • Jungle_hello
  • 2016年04月18日 09:57
  • 617

C++桥接模式详解--设计模式(7)

桥接模式的产生原因:          总结面向对象实际上就两句话:一是松耦合(Coupling),二是高内聚(Cohesion)。面向对象系统追求的目标就是尽可能地提高系统模块内部的内聚(Cohes...
  • fanyun_01
  • fanyun_01
  • 2016年06月27日 10:35
  • 1666

c++设计模式之桥接模式

例子引入:       拿汽车在路上行驶的来说。既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也...
  • bbs375
  • bbs375
  • 2016年07月24日 15:04
  • 169
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 设计模式 之 桥接模式
举报原因:
原因补充:

(最多只允许输入30个字)