首页 > Windows开发 > 详细

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

时间:2015-11-22 13:58:42      阅读:457      评论:0      收藏:0      [点我收藏+]

 

 

意图

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

适用性

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

结构

技术分享

实现

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

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.实现细节对客户透明

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

原文:http://www.cnblogs.com/castdream/p/4985588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!