1. 程式人生 > >設計模式(十八)——橋接模式

設計模式(十八)——橋接模式

橋接模式(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