|
模式名稱:生成器模式
1.問題描述
生活場景:你玩過種地、種花等類似的游戲嗎?這是最近很流行的游戲喲!下面就是從種花游戲中剪切的四個花盆(盆景),很漂亮吧!你將不同的種子放入花盆,一段時間后你就可以看到各種美麗的鮮花了,不同種子所生產出來的鮮花有不同的花朵、葉子和枝莖。編碼該如何實現呢?
設計目標:將種子放入花盆,一段時間后就可以收獲美麗的鮮花!
2.不假思索的思路:將盆景看做一個類,有幾個盆景我new幾個對象,直接完成這一奇妙過程。
設計類圖:
/**
* 荷花盆景
*/
public class WaterlilyFlowerpot {
public String name;
//莖
public String stem;
//葉
public String leaf;
//花
public String flower;
public void grow(){
//說明種類
name = "荷花";
//生產莖
stem = "40厘米";
//生產葉子
leaf = "圓形";
//生產花
flower = "白里透紅";
}
public void create(){
System.out.println(name + " : 莖"+" - "+stem+" , 葉"+" - "+leaf+" , 花"+" - "+flower);
}
}
/**
* 玫瑰盆景
*/
public class RoseFlowerpot {
public String name;
//莖
public String stem;
//葉
public String leaf;
//花
public String flower;
public void grow(){
//說明種類
name = "玫瑰";
//生產莖
stem = "20厘米";
//生產葉子
leaf = "橢圓形";
//生產花
flower = "大紅大白";
}
public void create(){
System.out.println(name + " : 莖"+" - "+stem+" , 葉"+" - "+leaf+" , 花"+" - "+flower);
}
}
/**
* 場景類
*/
public class Client {
public static void main(String[] args){
//開始種玫瑰花
RoseFlowerpot rfp = new RoseFlowerpot();
rfp.grow();
//盛開
rfp.create();
//玫瑰 : 莖 - 20厘米 , 葉 - 橢圓形 , 花 - 大紅大白 半徑5厘米
//開始種荷花
WaterlilyFlowerpot wf = new WaterlilyFlowerpot();
wf.grow();
//盛開
wf.create();
//荷花 : 莖 - 40厘米 , 葉 - 圓形 , 花 - 白里透紅 半徑10厘米
}
}
it知識庫:生成器模式(又名建造者模式、Builder Pattern),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。