当前位置: 首页 > wzjs >正文

网站美工费用照片查询百度图片搜索

网站美工费用,照片查询百度图片搜索,石家庄网站推广软件,毕业设计做网站难吗生成器模式(建造者模式) 把复杂对象的建造过程和表示分离,让同样的建造过程可以创建不同的表示。 假设你去快餐店买汉堡,汉堡由面包、肉饼、蔬菜、酱料等部分组成。 建造者模式的角色类比: 产品(Product…

生成器模式(建造者模式)

把复杂对象的建造过程和表示分离,让同样的建造过程可以创建不同的表示。

请添加图片描述

假设你去快餐店买汉堡,汉堡由面包、肉饼、蔬菜、酱料等部分组成。

建造者模式的角色类比:

  1. 产品(Product):汉堡
    (由多个部分组成的复杂对象)
  2. 抽象建造者(Builder):汉堡建造接口
    (定义 “放面包”“放肉饼”“放蔬菜”“放酱料” 等建造步骤)
  3. 具体建造者(ConcreteBuilder):鸡肉堡建造者、牛肉堡建造者
    (分别实现不同汉堡的建造步骤,比如鸡肉堡放鸡腿肉,牛肉堡放牛肉饼)
  4. 指挥者(Director):服务员
    (告诉建造者 “先放面包→再放肉饼→加蔬菜→加酱料”,控制建造顺序)

为什么要用建造者模式?

  • 场景对比:
    • 不用模式时: 直接 new 一个汉堡对象,要一次性传所有参数(面包类型、肉饼种类、蔬菜数量…),代码又长又容易错。
    • 用建造者模式: 像 “组装乐高” 一样,一步步造汉堡,每个步骤独立,最后由指挥者按顺序组装。

核心优势

  1. 解耦建造过程和产品表示:比如造 “豪华汉堡” 和 “普通汉堡”,可以复用相同的建造流程,只修改部分步骤。
  2. 简化复杂对象创建:避免 “巨量参数构造函数”,代码更清晰。
  3. 方便扩展新产品:新增 “素食汉堡” 时,只需新建一个建造者,不修改原有逻辑。

代码示例

// 1. 产品:汉堡  
class Hamburger {private String bread;private String meat;private String veggies;private String sauce;// 省略getter/setter,用Builder模式时很少直接操作这些字段
}// 2. 抽象建造者:定义建造步骤  
interface HamburgerBuilder {void buildBread();void buildMeat();void buildVeggies();void buildSauce();Hamburger getHamburger();
}// 3. 具体建造者:鸡肉堡建造者  
class ChickenBurgerBuilder implements HamburgerBuilder {private Hamburger hamburger = new Hamburger();@Overridepublic void buildBread() { hamburger.setBread("芝麻面包"); }@Overridepublic void buildMeat() { hamburger.setMeat("炸鸡腿肉"); }@Overridepublic void buildVeggies() { hamburger.setVeggies("生菜+番茄"); }@Overridepublic void buildSauce() { hamburger.setSauce("番茄酱"); }@Overridepublic Hamburger getHamburger() { return hamburger; }
}// 4. 指挥者:服务员,控制建造顺序  
class Waiter {private HamburgerBuilder builder;public Waiter(HamburgerBuilder builder) {this.builder = builder;}// 定义“标准汉堡”的建造流程  public Hamburger buildStandardHamburger() {builder.buildBread();builder.buildMeat();builder.buildVeggies();builder.buildSauce();return builder.getHamburger();}
}// 使用示例  
public class BuilderDemo {public static void main(String[] args) {// 要鸡肉堡?找鸡肉堡建造者+服务员  HamburgerBuilder chickenBuilder = new ChickenBurgerBuilder();Waiter waiter = new Waiter(chickenBuilder);Hamburger chickenBurger = waiter.buildStandardHamburger();System.out.println("建造了一个:" + chickenBurger.getBread() + " + " + chickenBurger.getMeat() + " + " + chickenBurger.getVeggies() + " + " + chickenBurger.getSauce());}
}
  1. 建造者模式和工厂模式的区别

    • 工厂模式:“一步到位” 创建简单对象(如直接 new 一个汉堡)。
    • 建造者模式:“分步组装” 创建复杂对象(如分步骤造汉堡的各个部分)。
  2. 实际场景举例

    • JDK 中的StringBuilder(一步步 append 字符,最后 toString ())。
    • SQL 语句构建(分步骤拼表名、条件、排序,避免 SQL 注入)。
http://www.dtcms.com/wzjs/372598.html

相关文章:

  • 云互联的网站名字放心网站推广优化咨询
  • 网站建设编程怎么写百度手机助手网页版
  • 瑞安商业网站建设重庆网站关键词排名优化
  • 衡水做淘宝网站建设宁波网站建设公司
  • 深圳手机网站建设牛商网站长工具seo下载
  • 网站页脚内容徐州seo管理
  • 手机网站建设案例搜索引擎最佳化
  • 哈尔滨网络宣传与网站建设怎么做一个网站
  • 蚌埠哪里做网站关键词挖掘ppt
  • xampp wordpress 慢百度推广优化是什么意思
  • 建设银行网站首页网店运营
  • 网站集约化建设要求四川全网推网络推广
  • 伍佰亿网站推广河南关键词优化搜索
  • 做调查赚钱的网站又哪些网站主题
  • 网站建设技术服务方案如何购买域名
  • 景泰建设中国官方网站百度高搜
  • 怎么给一个花店做网站建设企业推广文案范文
  • 用axure做高保真旅游网站重庆网站seo公司
  • 企业黄页到哪里买企业网站推广优化
  • 南昌手机网站制作软文通
  • 怎样注册小程序店铺网站优化设计公司
  • 厦门网站建设制作工具网站改版公司哪家好
  • 广西建设科技与建筑节能协会网站360优化大师app下载
  • 网站怎么做301定向湘潭网站设计外包服务
  • wordpress数据包企业网站seo案例分析
  • 网站开发的教学网站企业网络
  • 购物网站seo企业网站推广建议
  • 网站三级域名国际时事新闻2022最新
  • 日本女做受网站抖音关键词排名优化软件
  • 网页设计与网站制作知识框架网店推广平台有哪些