桥接模式
模式 桥接
2023-09-11 14:20:28 时间
/// <summary> /// 抽象概念中的遥控器,扮演抽象化角色 /// </summary> public class RemoteControl { // 字段 private TV implementor; // 属性 public TV Implementor { get { return implementor; } set { implementor = value; } } /// <summary> /// 开电视机,这里抽象类中不再提供实现了,而是调用实现类中的实现 /// </summary> public virtual void On() { implementor.On(); } /// <summary> /// 关电视机 /// </summary> public virtual void Off() { implementor.Off(); } /// <summary> /// 换频道 /// </summary> public virtual void SetChannel() { implementor.tuneChannel(); } } /// <summary> /// 具体遥控器 /// </summary> public class ConcreteRemote : RemoteControl { public override void SetChannel() { Console.WriteLine("---------------------"); base.SetChannel(); Console.WriteLine("---------------------"); } }
/// <summary> /// 电视机,提供抽象方法 /// </summary> public abstract class TV { public abstract void On(); public abstract void Off(); public abstract void tuneChannel(); } /// <summary> /// 长虹牌电视机,重写基类的抽象方法 /// 提供具体的实现 /// </summary> public class ChangHong : TV { public override void On() { Console.WriteLine("长虹牌电视机已经打开了"); } public override void Off() { Console.WriteLine("长虹牌电视机已经关掉了"); } public override void tuneChannel() { Console.WriteLine("长虹牌电视机换频道"); } } /// <summary> /// 三星牌电视机,重写基类的抽象方法 /// </summary> public class Samsung : TV { public override void On() { Console.WriteLine("三星牌电视机已经打开了"); } public override void Off() { Console.WriteLine("三星牌电视机已经关掉了"); } public override void tuneChannel() { Console.WriteLine("三星牌电视机换频道"); } }
采用桥接模式的客户端调用代码:
/// <summary> /// 以电视机遥控器的例子来演示桥接模式 /// </summary> class Client { static void Main(string[] args) { // 创建一个遥控器 RemoteControl remoteControl = new ConcreteRemote(); // 长虹电视机 remoteControl.Implementor = new ChangHong(); remoteControl.On(); remoteControl.SetChannel(); remoteControl.Off(); Console.WriteLine(); // 三星牌电视机 remoteControl.Implementor = new Samsung(); remoteControl.On(); remoteControl.SetChannel(); remoteControl.Off(); Console.Read(); } }
使用场景:
三层架构
相关文章
- C++之单例模式
- 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)
- Redis源代码分析(三十)--- pubsub公布订阅模式
- 《实践者的研究方法》—— 第3章 软件工程 3.4 过程模式
- 设计模式java——桥接模式
- 设计模式java——职责链模式
- 深入浅出装饰者模式
- 策略模式(Strategy)
- 桥接模式(Bridge)
- c++中MFC消息机制,UI线程和工作线程,模式对话框原理
- python交互模式下tab键自动补全
- 《敏捷软件开发:原则、模式与实践(C#版.修订版)》一1.3 结论
- 《Ember.js实战》——2.4 观察者模式
- iOS-夜间模式(换肤设置)
- 《软件建模与设计: UML、用例、模式和软件体系结构》一一2.4 类图
- Java设计模式之行为型:解释器模式
- 5.4 桥接模式(4.2)
- 13结构型模式之桥接模式
- Linux的运行级别/模式
- 设计模式-抽象工厂模式