C#设计模式——桥接模式
2021-04-08 03:24
标签:key c# 美的 ons over 抽象 总结 角色 遥控器 一、桥接模式介绍: 桥接模式即将抽象部分与实现部分脱耦,实现抽象化与实现化的解耦,使它们相互独立互不影响到对方,使它们可以独立变化。 二、使用场景: 三、情景例子: 我们每个品牌的空调都有一个自己的遥控器,我们如果把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体空调品牌的遥控器都继承这个抽象类,这样的实现使得每部不同型号的空调都有自己遥控器实现。这样的设计对于空调型号的改变可以很好地应对,只需要添加一个子类就行了,但用户如果需要改变遥控器的功能,此时就需要修改遥控器抽象类的提供的接口了,此时可能只需要向抽象类中添加一个方法就可以解决了,但是这样带来的问题是我们改变了抽象的实现,如果用户需要同时改变空调型号和遥控器功能时,就会导致相当大的修改,显然这样的设计并不好,然而使用桥接模式可以很好地解决这个问题。 四、具体代码: 实现化部分代码: 1、创建空调抽象类,提供抽象行为方法: 2、创建具体空调实现类,实现具体方法: 抽象化部分代码: 1、创建抽象遥控器,扮演抽象化角色,但不提供实现,而是调用实现类中的实现: 2、创建具体遥控器: 3、调用 五、总结: 优点: 缺点: C#设计模式——桥接模式 标签:key c# 美的 ons over 抽象 总结 角色 遥控器 原文地址:https://www.cnblogs.com/jiechou/p/9094723.html
///
///
///
public class RemoteControl
{
private AirConditioner specific_implementation;
public AirConditioner Specific_Implementation { get { return specific_implementation; } set { specific_implementation = value; } }
///
///
static void Main(string[] args)
{
//创建一个遥控器对象
RemoteControl remotecontrol = new ConcreteRemoteControl();
//格力空调
remotecontrol.Specific_Implementation = new Gree();
remotecontrol.On();
remotecontrol.Off();
remotecontrol.SetMode();
//美的空调
remotecontrol.Specific_Implementation = new Midea();
remotecontrol.On();
remotecontrol.Off();
remotecontrol.SetMode();
Console.ReadKey();
}