您的位置:首页 > 编程语言 > C#

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

2015-11-22 13:10 281 查看
意图

适用性

结构

实现

效果

意图

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

适用性

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.实现细节对客户透明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: