首页 > 其他分享 >建造者模式

建造者模式

时间:2022-10-19 14:59:37浏览次数:35  
标签:addItem 建造 模式 Meal Burger 套餐 new meal

建造者模式

eg:日常生活中,装修房子会根据不同的场景、品牌、型号、价格等等组合形成了各式各样的装修风格(套餐A:现代简约,套餐B:轻奢田园,套餐C:欧式豪华)一些基本物料不会变,而其组合经常变化的时候,就可以选择这样的构建者模式来构建代码。

 

缺点: 1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类。

一个典型的套餐可以是一个汉堡(Burger)和一杯冷饮(Cold drink)。汉堡(Burger)可以是素食汉堡(Veg Burger)或鸡肉汉堡(Chicken Burger),它们是包在纸盒中。冷饮(Cold drink)可以是可口可乐(coke)或百事可乐(pepsi),它们是装在瓶子中。

就拿菜鸟上的例子学习吧!

 

 

部分代码实现

public class MealBuilder {
 
   public Meal prepareVegMeal (){
      Meal meal = new Meal();
      meal.addItem(new VegBurger());
      meal.addItem(new Coke());
      return meal;
   }   
 
   public Meal prepareNonVegMeal (){
      Meal meal = new Meal();
      meal.addItem(new ChickenBurger());
      meal.addItem(new Pepsi());
      return meal;
   }
}

标签:addItem,建造,模式,Meal,Burger,套餐,new,meal
From: https://www.cnblogs.com/thh19201420/p/16806205.html

相关文章

  • React的5种高级模式
    本文概述了5种现代高级React模式,包括集成代码、优点和缺点,以及在公共库中的具体用法。像每个React开发者一样,你可能已经问过自己以下问题之一我如何建立一个可重复使用......
  • 深入剖析Redis系列: Redis集群模式搭建与原理详解
    前言在Redis3.0之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态。RedisCluster是Redis的 分布式解决方案,在3.0版本正式推出,有效地解决了Redis在 分布式 ......
  • 设计模式总结
    简述设计模式的分类创建型模式:在创建对象的同时隐藏创建逻辑,不使用new直接实例化对象。有工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模......
  • Java设计模式 —— 外观模式
    13外观模式13.1外观模式概述FacadePattern:为子系统的接口提供一组统一的入口。外观模式定义了一个高层接口,这个接口使得子系统的更加容易使用。在外观模式中,一......
  • Java设计模式 —— 装饰模式
    12装饰模式12.1装饰模式概述DecoratorPattern:动态地给一个对象增加一些额外的职责。提供一种比使用子类更加灵活的方案来扩展功能。装饰模式是一种用于替代继......
  • 设计模式 - 动态代理
    设计模式-动态代理什么是代理代购、中介、商家举个栗子:比如有一家美国大学,面向全世界招生,而我们国内的同学,需要去到某个大学。因为我们所处国内,并不知道这个大学......
  • 伪分布式运行模式
    启动HDFS并运行MapReduce程序配置集群1.core-site.xml指定HDFS中NameNode的地址。<property> <name>fs.defaultFS</name> <value>hdfs://nodeb1(主机名):9000</value......
  • 【设计模式】责任链模式,让程序员摆脱乱糟糟的零散的代码
    ......
  • 设计模式-创建者模式-抽象工厂模式
    设计模式-创建者模式-抽象工厂模式内容摘自:重学Java设计模式:实战抽象工厂模式「替换Redis双集群升级,代理类抽象场景」|bugstack虫洞栈抽象工厂模式介绍图片来自:h......
  • Rt3070芯片动态获取IP地址——station模式
    ———————————————————————————————————————主机操作系统:Centos6.7交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台:FL2440 Linux......