C#设计模式—桥接模式

1、为什么使用桥接模式?
当我们有一个类具有两个或者两个以上独立变化的维度的时候,我们可以考虑桥接模式,就比如对于一个数据处理的类,我们既要生成各种图表(曲线,柱状图,饼图),又要生成各种报表(.txt,.csv,.xml),如果我们不适用桥接模式,那么我们要实现这几种组合的话就要写对应的3*3=9个类,如果我们使用桥接模式只想要3+3=6个类,明显的减少了类的个数,简化了代码,提高了灵活性。
2、怎么用桥接模式?
抽象类(将普通的业务方法和与类本身最密切相关的维度)

abstract   class Plane
    {
     
      protected PlaneImp imp;
      public   void  SetPlane (PlaneImp imp)
      {
     
          this .imp =imp ;
      }
      public abstract void SelectCompany();
    }

抽象类的实现

```csharp
```csharp
   class Airbus:Plane 
    {
     
        public override void SelectCompany()
        {
     
            Console.WriteLine("我是空客公司");
            imp.CreatePlane();
        }
    }

抽象类的实现

class Boeing:Plane 
{
     
    public override void SelectCompany()
    {
     
        Console.WriteLine("我是波音公司");
        imp.CreatePlane();
    }
}

抽象类的实现

 class McDonnell:Plane 
    {
     
        public override void SelectCompany()
        {
     
            Console.WriteLine("我是麦道公司");
            imp.CreatePlane();
        }
    }

实现类(两个维度的另一个维度,与类关系不是特别的一个维度)

  interface  PlaneImp
    {
     
        void CreatePlane();
    }

实现类的具体实现

class CargoPlane : PlaneImp
{
     
    public void CreatePlane()
    {
     
        Console.WriteLine("我生产了载货飞机");
    }
}

调用

   class PassengerPlane:PlaneImp 
    {
     
        public void CreatePlane()
        {
     
            Console.WriteLine("我生产了载客飞机");
        }
    }

你可能感兴趣的:(c#,c#)