/// <summary>
/// 建造者模式抽象類,用來指定創建對象的抽象接口
/// </summary>
abstract class Translator
{
public abstract string SayLove();
}
/// <summary>
/// 具體建造者中文版我愛你,實現Translator接口。
/// </summary>
class Trans_CN:Translator
{
public override string SayLove()
{
return "我愛你!";
}
}
/// <summary>
/// 具體建造者英文版我愛你,實現Translator接口。
/// </summary>
class Trans_EN:Translator
{
public override string SayLove()
{
return "I Love You!";
}
}
/// <summary>
/// 按鍵指揮管理類,根據用戶的需求說不同的語言。
/// </summary>
class ManageKey
{
private Translator t;
public ManageKey(Translator t)
{
this.t = t;
}
public string Say()
{
return t.SayLove();
}
}
/// <summary>
/// 客戶端應用建造者模式
/// </summary>
class Program
{
static void Main(string[] args)
{
//向北京姑娘表達愛意
Trans_CN cn = new Trans_CN();
ManageKey key = new ManageKey(cn);
Console.WriteLine(key.Say());
Console.Read();
}
}
建造者模式-向不同地方國家的女生說”我愛你”
建造者模式比喻
女生最愛聽的就是“我愛你”這句話了,見到不同地方的女生,要能夠用她們的方言跟她說這句話哦,我有一個多種語言翻譯機,上面每種語言都有一個按鍵,見到不同地方的女生我只要按對應的鍵,它就能夠用相應的語言說出“我愛你”這句話了,國外的女孩也可以輕鬆搞定,這就是我的“我愛你”Builder建造者模式。
建造者模式意圖
建造者模式(Builder)將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
建造者模式類圖
建造者模式實現
建造者模式總結
這個機器只支持說一句”我愛你”這樣的句子這個動作,也就是說建造者模式在創建一些複雜對象時要求對象內部的構建是穩定的,但是可以支持多種語言,即每個建造過程可以生產具有不同內部表象的產品對象,使得產品內部表象可以獨立的變化,客戶不必知道產品內部組成的細節。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.