設計模式系列之 建造者模式

2021-09-24 06:51:58 字數 3347 閱讀 7390

一、初出茅廬的比爾·雷澤

比爾最近迷上了程式設計,剛學到點三腳貓功夫就吵著要寫段**為自己代言,要把自己不同的形象展現出來,比爾寫了以下**:

①角色的基配

public class character 

@override

public string tostring()

}複製**

②出戰前基配型別(充能、選擇主**以及副**)

//充能

public abstract class energy

//主**

public abstract class mainweapon

//副**

public abstract class viceweapon

複製**

③1vs1的**裝配

//1vs1的充能

public class onevsoneenergy extends energy

}//1vs1的主**裝配

public class onevsonemainweapon extends mainweapon

}//1vs1的副**裝配

public class onevsoneviceweapon extends viceweapon

}複製**

④3vs3的**裝配

//3vs3的充能

public class threevsthreeenergy extends energy

}//3vs3的主**裝配

public class threevsthreemainweapon extends mainweapon

}//3vs3的副**裝配

public class threevsthreeviceweapon extends viceweapon

}複製**

⑤client實現

public class client 

}複製**

輸出結果

充能完成。主**:**加特林。副**:集速手雷。 

充能完成。主**:突擊步槍。副**:等離子噴射器。

複製**

對於乙個剛學習程式設計的比爾來說,撇開設計模式來說,能夠寫出這樣的**,小y都是佩服得不要不要的了,但是為了唬住這個沒長全毛的比爾,小y毅然搬出了設計模式,對比爾進行了義正言辭的批評教育:

為了防止比爾反駁,小y立馬丟擲建造者模式

二、基本概念

1.定義

將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

2.理解

就是把乙個產品(物件)表示(展示)和構建(建立)過程分離開來,這樣產品的構建流程相同卻可以有不同的產品表示。

3.為何使用建造者模式

4.應用場景

5.角色介紹

三、案列實現

1.uml清單

2.**實現

修改後角色的基配

public class character 

public void setenergy(energy energy)

public mainweapon getmainweapon()

public void setmainweapon(mainweapon mainweapon)

public viceweapon getviceweapon()

public void setviceweapon(viceweapon viceweapon)

@override

public string tostring()

}複製**

②角色建造抽象類

public inte***ce characterbuilder 

複製**

③1vs1具體建造者

public class onevsonebulider implements characterbuilder 

@override

public void makeenergy()

@override

public void makemainweapon()

@override

public void makeviceweapon()

@override

public character build()

}複製**

④3vs3具體建造者

public class threevsthreebulider implements characterbuilder 

@override

public void makeenergy()

@override

public void makemainweapon()

@override

public void makeviceweapon()

@override

public character build()

}複製**

⑤director導演類

public class characterdirector 

public character createcharacter()

}複製**

⑥client實現

public class client 

}複製**

輸出結果

充能完成。主**:**加特林。副**:集速手雷。 

充能完成。主**:突擊步槍。副**:等離子噴射器

複製**

四、優缺點

1.優點

2.缺點

五、總結

節目到了尾聲了,讓我們用熱烈的掌聲感謝重量級嘉賓比爾雷澤,好走不送。

PHP設計模式系列 建造者模式

有乙個使用者的userinfo類,建立這個類,需要建立使用者的姓名,年齡,金錢等資訊,才能獲得使用者具體的資訊結果。建立乙個userinfobuilder 使用者建造者類,這個類,將userinfo複雜的建立姓名,年齡,金錢等操作封裝起來,簡化使用者類的建立過程 建造者模式,目的是消除其它物件複雜的...

PHP設計模式系列 建造者模式

建造者模式主要是為了消除其它物件複雜的建立過程。有乙個使用者的userinfo類,建立這個類,需要建立使用者的姓名,年齡,金錢等資訊,才能獲得使用者具體的資訊結果。建立乙個userinfobuilder 使用者建造者類,這個類,將userinfo複雜的建立姓名,年齡,金錢等操作封裝起來,簡化使用者類...

設計模式之建造者模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...