您的位置:首页 > 其它

设计模式(十八)——桥接模式

2017-12-11 12:14 344 查看

桥接模式(Bridge)

桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。



代码

1.代码如下:

手机软件抽象类

using System;

namespace Bridge
{
//手机软件抽象类
public abstract class HandsetSoft
{
public abstract void Run();
}
}

具体软件类——手机游戏

using System;

namespace Bridge
{
//具体软件类——手机游戏
public class HandsetGame:HandsetSoft
{
public override void Run ()
{
Console.WriteLine ("运行手机游戏");
}
}
}

具体软件类——手机通讯录

using System;

namespace Bridge
{
//具体软件类——手机通讯录
public class HandsetAddressList:HandsetSoft
{
public override void Run ()
{
Console.WriteLine ("运行手机通讯录");
}
}
}

手机品牌抽象类

using System;

namespace Bridge
{
//手机品牌抽象类
public abstract class HandsetBrand
{
protected HandsetSoft soft;

//设计手机软件
public void SetHandsetSoft(HandsetSoft soft){
this.soft=soft;
}
//运行
public abstract void Run();
}
}

手机品牌N

using System;

namespace Bridge
{
//手机品牌N
public class HandsetBrandN:HandsetBrand
{
public override void Run ()
{
soft.Run ();
}
}
}

手机品牌M

using System;

namespace Bridge
{
//手机品牌M
public class HandsetBrandM:HandsetBrand
{
public override void Run ()
{
soft.Run ();
}
}
}
2.客户端代码如下

客户端

using System;

namespace Bridge
{
class MainClass
{
public static void Main (string[] args)
{
HandsetBrand ab;
ab = new HandsetBrandN ();

ab.SetHandsetSoft (new HandsetGame ());
ab.Run ();

ab.SetHandsetSoft (new HandsetAddressList ());
ab.Run ();

ab = new HandsetBrandM ();

ab.SetHandsetSoft (new HandsetGame ());
ab.Run ();

ab.SetHandsetSoft (new HandsetAddressList ());
ab.Run ();
}
}
}
3.运行结果



UML图



源码下载地址:https://gitee.com/ZhaoYongshuang/DesignPattern.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: