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#面向对象设计模式纵横谈:Bridge 桥接模式

转: http://kb.cnblogs.com/page/79503/ 抽象与实现   抽象不应该依赖于实现细节,实现细节应该依赖于抽象。   问题在于如果抽象B由于固有的原因,本身并...

C#设计模式(八)桥接模式(Bridge Pattern)

一、引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电...

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

0.C#设计模式--简单工厂模式 1.C#设计模式--工厂方法模式 2.C#设计模式--抽象工厂模式 3.C#设计模式--单例模式 4.C#设计模式--建造者模式 5.C...

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

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

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

桥接模式,就是将一个抽象对象,写到一个类中,然后将具体的现实对象的共同属性和方法,写到一个父类中,让具体的实现对象来继承这个父类,然后在具体的桥接类中把相应的父类定义为属性,然后在调用的时候就直接调用...

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

桥接模式,从字面意思上说就是用一条桥梁来链接两个不同的事物。专业一点讲,就是当一个类存在独立变化的两个维度的时候,可以将这两个维度分离出,设计成独立的继承结构,使他们可以独立扩展。桥接模式用一种巧妙的...

C#设计模式之8——桥接模式

桥接(Bridge)模式很像适配器模式,两者都是使用类把一种接口转换为另一种接口;然而,适配器的意图是使得一个或者多个类的接口与某个特定类的接口看起来一样,而桥接模式的设计目标是分离类的接口和实现,这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 设计模式 之 桥接模式
举报原因:
原因补充:

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