设计模式(3)――结构性模式 (五)

2014-11-24 02:43:10 · 作者: · 浏览: 4
verride void Show()
{
Console.Write("大体恤");
base.Show();
}
}
class Sneakers2 : Finery2
{
public override void Show()
{
Console.Write("大裤衩");
base.Show();
}
}
class BigTrouser2 : Finery2
{
public override void Show()
{
Console.Write("垮裤");
base.Show();
}
}

class LeatherShoes2 : Finery2
{
public override void Show()
{
Console.Write("西装");
base.Show();
}
}
class Tie2 : Finery2
{
public override void Show()
{
Console.Write("领带");
base.Show();
}
}
class Suit2 : Finery2
{
public override void Show()
{
Console.Write("皮鞋");
base.Show();
}
}
}


8. 桥接模式

将抽象部分与它的实现部分分离,使它们都可以独立地变换。核心意图就是将这些实现独立出来,让他们各自变化,使得每种变化不会影响其他的变化,从而达到应对变化的目的(就adidas和NIKE两个品牌与服装之间桥接起来)


UML图:

\


代码:

view plaincopy to clipboardprint //桥接模式——将抽象部分(手机品牌)和实现部分(手机软件)分离开使他们可以独立的变化
namespace 桥接模式
{
class Class2
{
static void Main(string[] args)
{
HandsetBrand1 ab;
ab = new HandsetBrandN1();

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

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

ab = new HandsetBrandM1();

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

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

Console.Read();

}
}

abstract class HandsetSoft //手机软件
{
public abstract void Run();
}
class HandsetGame1 : HandsetSoft //手机游戏
{
public override void Run()
{
Console.WriteLine("运行手机游戏");
}
}
class HandsetAddressList : HandsetSoft //手机通讯录
{
public override void Run()
{
Console.WriteLine("运行手机通讯录");
}
}

abstract class HandsetBrand1 //手机品牌
{
protected HandsetSoft soft;

//设置手机软件
public void SetHandsetSoft(HandsetSoft soft)
{
this.soft = soft;
}

//运行
public abstract void Run();
}

class HandsetBrandN1 : HandsetBrand1 //手机品牌N
{
public override void Run()
{
soft.Run();
}
}
class HandsetBrandM1 : HandsetBrand1 //手机品牌M
{
public override void Run()
{
soft.Run();
}
}



//新增一个手机MP3播放器软件
class HandsetMP3 : HandsetSoft
{
public override void Run()
{
Console.WriteLine("运行手机MP3播放器");
}
}
//新增手机品牌S
class HandsetBrandS : HandsetBrand1
{
public override void Run()
{
soft.Run();
}
}
}
//桥接模式——将抽象部分(手机品牌)和实现部分(手机软件)分离开使他们可以独立的变化
namespace 桥接模式
{
class Class2
{
static void Main(string[] args)
{
HandsetBrand1 ab;
ab = new HandsetBrandN1();

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

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

ab = new