生成器模式(又名建造者模式、Builder Pattern)

  模式名称:生成器模式

  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),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。