设计模式C#实现(十)——桥接模式
2015-11-22 13:10
281 查看
意图
适用性
结构
实现
效果
2.类的抽象以及它的实现都可以通过生成子类的方法加以扩充
3.对抽象的实现部分的修改应对客户端不参产生影响
4.在多个对象中共享实现
遥控器
电视
具体的电视
具体的遥控器
可扩展
客户
运行结果
2.提高可扩充性
3.实现细节对客户透明
适用性
结构
实现
效果
意图
将抽象部分与它的实现部分分离,使它们都可以独立的变化。适用性
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#】计算器
- 用C#实现修改网页数据
- C#中间语言IL初探
- C#---字符串String
- C# xpath
- C#读写xml文件
- C#常用操作类库五(电脑操作类)
- C#常用操作类库四(File操作类)
- C#常用操作类库一(验证类)
- C#常用操作类库三(XML操作类)
- 大话设计模式之面向对象基础篇(一)
- 【c#】——入门初观
- C#之抽象类、虚方法、重写、接口、密封类
- 【C#】delegate委托的定义和使用方法
- C#(链栈)实现火车重排问题
- C# 基于大整数类的RSA算法实现(公钥加密私钥解密,私钥加密公钥解密)
- C# 获取获取经纬度!
- HDU 5569 (BC#63)DP
- OOP之C#设计及其UML(反向工程)
- C#之多态