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

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

意图0适用性1结构2实现3效果4

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

适用性1.不希望抽象和实现间有固定的绑定关系

2.类的抽象以及它的实现都可以通过生成子类的方法加以扩充

3.对抽象的实现部分的修改应对客户端不参产生影响

4.在多个对象中共享实现

结构[flash=500,400]http://s1.knowsky.com/20160211/q23g4xkog1d49.png[/flash]

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

遥控器

publicclassRemoteControl{publicTV tv;publicvoidOn(){

tv.On();

}publicvoidOff(){

tv.Off();

}

}

电视

publicinterfaceTV{voidOn();voidOff();

}

具体的电视

publicclassSony:TV{publicvoidOn(){

Console.WriteLine("SonyTV On.");

}publicvoidOff(){

Console.WriteLine("SonyTV off");

}

}

具体的遥控器

可扩展

publicclassConcreteRemote:RemoteControl{publicConcreteRemote(TV tv){this.tv = tv;

}publicvoidAutoOff(intms){

Thread.Sleep(ms);

tv.Off();

}

}

客户

classPRogram{staticvoidMain(string[] args){

TV sony =newSony();

ConcreteRemote cr =newConcreteRemote(sony);

cr.On();

cr.AutoOff(5000);

Console.ReadKey();

}

}

运行结果

[flash=500,400]http://s1.knowsky.com/20160211/2byvp4pmypa49.png[/flash]

效果1.分离接口及其实现部分

2.提高可扩充性

3.实现细节对客户透明

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航