首页 > 学院 > 开发设计 > 正文

设计模式C#实现(十)——桥接模式

2019-11-14 13:45:08
字体:
来源:转载
供稿:网友

 

      • 意图
      • 适用性
      • 结构
      • 实现
      • 效果

 

意图

将抽象部分与它的实现部分分离,使它们都可以独立的变化。

适用性

1.不希望抽象和实现间有固定的绑定关系
2.类的抽象以及它的实现都可以通过生成子类的方法加以扩充
3.对抽象的实现部分的修改应对客户端不参产生影响
4.在多个对象中共享实现

结构

Bridge

实现

(这里所说的抽象层次和实现层次和面向对象的抽象和实现不同?把遥控器当作抽象,电视机当作实现是因为遥控器本身不会开关,只是命令电视机开关?这里抽象层次和实现层次的关系是聚合呀)
遥控器

public class RemoteControl    {        public TV tv;        public void On()        {            tv.On();        }        public void Off()        {            tv.Off();        }    }

电视

public interface TV    {        void On();        void Off();    }

具体的电视

    public class Sony:TV    {        public void On()        {            Console.WriteLine("SonyTV On.");        }        public void Off()        {            Console.WriteLine("SonyTV off");        }    }

具体的遥控器
可扩展

 public class ConcreteRemote:RemoteControl    {        public ConcreteRemote(TV tv)        {            this.tv = tv;        }        public void AutoOff(int ms)        {            Thread.Sleep(ms);            tv.Off();        }    }

客户

 class PRogram    {        static void Main(string[] args)        {            TV sony = new  Sony();            ConcreteRemote cr = new ConcreteRemote(sony);            cr.On();            cr.AutoOff(5000);            Console.ReadKey();        }    }

运行结果
运行结果

效果

1.分离接口及其实现部分
2.提高可扩充性
3.实现细节对客户透明


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表