首页 > 代码库 > 设计模式学习笔记-桥接模式
设计模式学习笔记-桥接模式
一、概述
将抽象部分与它的实现部分分离,使它们都可以独立地变化。
二、模式中的角色
Abstraction:定义抽象类的接口;维护一个指向Implementor类型对象的指针;
RefinedAbstraction:扩充由Abstraction定义的接口;
Implementor:定义具体行为,具体特征的应用接口;
ConcreteImplementor:实现Implementor。
三、UML类图
四、代码实现
4.1 桥接模式的实现代码
/// <summary> /// 实现 /// </summary> public abstract class Implementor { public abstract void OperationImp(); } public class ConcreteImplementorA : Implementor { /// <summary> /// 具体实现 /// </summary> public override void OperationImp() { Console.WriteLine("具体实现A的执行"); } } public class ConcreteImplementorB : Implementor { public override void OperationImp() { Console.WriteLine("具体实现B的执行"); } } /// <summary> /// 抽象 /// </summary> public abstract class Abstraction { protected Implementor implementor; public void SetImplementor(Implementor imp) { this.implementor = imp; } public abstract void Opration(); } /// <summary> /// 被提炼的抽象 /// </summary> public class RefinedAbstraction: Abstraction { public override void Opration() { implementor.OperationImp(); } }
4.2 客户端实现
#region 桥接模式 Abstraction abstraction = new RefinedAbstraction(); abstraction.SetImplementor(new ConcreteImplementorA()); abstraction.Opration(); abstraction.SetImplementor(new ConcreteImplementorB()); abstraction.Opration(); #endregion
输出结果:
参考书籍《设计模式-可复用面向对象软件的基础》
设计模式学习笔记-桥接模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。