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