橋接模式 範例

橋接模式 範例

橋接模式 範例

橋接模式 範例

abstract class HandsetSoft
{
public abstract void Run();
}

class HandsetGame : HandsetSoft
{
public override void Run()
{
Console.WriteLine(”執行手機遊戲”);
}
}

class HandsetAddressList : HandsetSoft
{
public override void Run()
{
Console.WriteLine(”執行手機通訊錄”);
}
}

abstract class HandsetBrand
{
protected HandsetSoft soft;

public void SetHandsetSoft(HandsetSoft soft)
{
    this.soft = soft;
}
public abstract void Run();

}

class HandsetBrandN : HandsetBrand
{
public override void Run()
{
soft.Run();
}
}

class HandsetBrandM : HandsetBrand
{
public override void Run()
{
soft.Run();
}
}

static void Main(string[] args)
{

HandsetBrand sb;
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();
Console.Read();

}

要增加MP3功能
class HandsetMP3 : HandsetSoft
{
public override void Run()
{
Console.WriteLine(”執行手機MP3播放”);
}
}

要增加手機品牌S
class HandsetBrandS : HandsetBrand
{
public override void Run()
{
soft.Run();
}
}