<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    人在江湖

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      82 Posts :: 10 Stories :: 169 Comments :: 0 Trackbacks
    Builder

    Abstract interface for creating objects (product).

    Concrete Builder

    Provide implementation for Builder. Construct and assemble parts to build the objects.

    Director

    The Director class is responsible for managing the correct sequence of object creation. It receives a Concrete Builder as a parameter and executes the necessary operations on it.

    Product

    The final object that will be created by the Director using Builder..

       1: /** "Product" */
       2: class Pizza {
       3: private String dough = "";
       4: private String sauce = "";
       5: private String topping = "";
       6:  
       7: public void setDough(String dough) {
       8: this.dough = dough;
       9: }
      10:  
      11: public void setSauce(String sauce) {
      12: this.sauce = sauce;
      13: }
      14:  
      15: public void setTopping(String topping) {
      16: this.topping = topping;
      17: }
      18: }
      19:  
      20: /** "Abstract Builder" */
      21: abstract class PizzaBuilder {
      22: protected Pizza pizza;
      23:  
      24: public Pizza getPizza() {
      25: return pizza;
      26: }
      27:  
      28: public void createNewPizzaProduct() {
      29: pizza = new Pizza();
      30: }
      31:  
      32: public abstract void buildDough();
      33:  
      34: public abstract void buildSauce();
      35:  
      36: public abstract void buildTopping();
      37: }
      38: /** "ConcreteBuilder" */
      39: class HawaiianPizzaBuilder extends PizzaBuilder {
      40: public void buildDough() {
      41: pizza.setDough("cross");
      42: }
      43:  
      44: public void buildSauce() {
      45: pizza.setSauce("mild");
      46: }
      47:  
      48: public void buildTopping() {
      49: pizza.setTopping("ham+pineapple");
      50: }
      51: }
      52:  
      53: /** "ConcreteBuilder" */
      54: class SpicyPizzaBuilder extends PizzaBuilder {
      55: public void buildDough() {
      56: pizza.setDough("pan baked");
      57: }
      58:  
      59: public void buildSauce() {
      60: pizza.setSauce("hot");
      61: }
      62:  
      63: public void buildTopping() {
      64: pizza.setTopping("pepperoni+salami");
      65: }
      66: }
      67: /** "Director" */
      68: class Cook {
      69: private PizzaBuilder pizzaBuilder;
      70:  
      71: public void setPizzaBuilder(PizzaBuilder pb) {
      72: pizzaBuilder = pb;
      73: }
      74:  
      75: public Pizza getPizza() {
      76: return pizzaBuilder.getPizza();
      77: }
      78:  
      79: public void constructPizza() {
      80: pizzaBuilder.createNewPizzaProduct();
      81: pizzaBuilder.buildDough();
      82: pizzaBuilder.buildSauce();
      83: pizzaBuilder.buildTopping();
      84: }
      85: }
      86:  
      87: /** A given type of pizza being constructed. */
      88: public class BuilderExample {
      89: public static void main(String[] args) {
      90: Cook cook = new Cook();
      91: PizzaBuilder hawaiianPizzaBuilder = new HawaiianPizzaBuilder();
      92: PizzaBuilder spicyPizzaBuilder = new SpicyPizzaBuilder();
      93:  
      94: cook.setPizzaBuilder(hawaiianPizzaBuilder);
      95: cook.constructPizza();
      96:  
      97: Pizza pizza = cook.getPizza();
      98: }
      99: }
    posted on 2011-02-09 22:45 人在江湖 閱讀(803) 評論(0)  編輯  收藏 所屬分類: design pattern
    主站蜘蛛池模板: 亚洲五月午夜免费在线视频| 免费永久国产在线视频| 日韩在线不卡免费视频一区| 亚洲免费精彩视频在线观看| 成人免费看黄20分钟| 亚洲精品乱码久久久久久蜜桃 | 亚洲精华国产精华精华液好用| 黄网站在线播放视频免费观看| 久久久久女教师免费一区| 久久久久免费精品国产小说| 亚洲国产一区二区a毛片| 亚洲另类春色校园小说| 国产97视频人人做人人爱免费| 无码高潮少妇毛多水多水免费| 亚洲人成欧美中文字幕| 在线日本高清免费不卡| 亚洲熟妇丰满多毛XXXX| 亚洲日韩中文字幕无码一区| 亚洲AⅤ无码一区二区三区在线| 33333在线亚洲| 一级毛片**不卡免费播| 亚洲日韩乱码中文无码蜜桃臀| 中文字幕无线码免费人妻| 国产又大又黑又粗免费视频| 国产人成亚洲第一网站在线播放| 18pao国产成视频永久免费| 久久精品国产亚洲麻豆| 国产亚洲人成在线影院| 最近最新中文字幕完整版免费高清 | jizz免费在线观看| 亚洲成年人在线观看| 国产特黄特色的大片观看免费视频| 亚洲无人区一区二区三区| 99久久99久久精品免费看蜜桃| 亚洲av一综合av一区| 你懂的在线免费观看| 亚洲色欲久久久综合网东京热| 国产成人精品免费视频大| 亚洲精品电影在线| 免费A级毛片无码A∨| 亚洲av无码专区在线观看亚|