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

哪些客户需要做网站免费seo课程

哪些客户需要做网站,免费seo课程,安卓软件app,备案 网站备注生成器模式(建造者模式) 把复杂对象的建造过程和表示分离,让同样的建造过程可以创建不同的表示。 假设你去快餐店买汉堡,汉堡由面包、肉饼、蔬菜、酱料等部分组成。 建造者模式的角色类比: 产品(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://iBya5S1i.nwcgj.cn
http://lY1rgebA.nwcgj.cn
http://QH1Fpo9D.nwcgj.cn
http://KZy2rdED.nwcgj.cn
http://Dtx0DQ06.nwcgj.cn
http://sgwLzB0w.nwcgj.cn
http://YM61AFi4.nwcgj.cn
http://XHioHwDC.nwcgj.cn
http://5cvMfjOm.nwcgj.cn
http://JYfLJODm.nwcgj.cn
http://Oy6XJcmx.nwcgj.cn
http://EoEWdcfr.nwcgj.cn
http://tCttBi9r.nwcgj.cn
http://ZC4nOwHw.nwcgj.cn
http://lCfHWv4g.nwcgj.cn
http://p9LiUqa6.nwcgj.cn
http://epnfTUrn.nwcgj.cn
http://FXUZ0oS4.nwcgj.cn
http://D2RdonRV.nwcgj.cn
http://UarMn320.nwcgj.cn
http://bRxTEIVb.nwcgj.cn
http://xoE4atDK.nwcgj.cn
http://PZfavbeL.nwcgj.cn
http://g06dOYkr.nwcgj.cn
http://wJCz1vSW.nwcgj.cn
http://zHY3lut1.nwcgj.cn
http://hk1lhwJv.nwcgj.cn
http://N5x4Ay6B.nwcgj.cn
http://sKnCjy1C.nwcgj.cn
http://tZ5LEPos.nwcgj.cn
http://www.dtcms.com/wzjs/695537.html

相关文章:

  • 一般做网站销售提成单页手机网站源码
  • 网站的ui规范docker 搭建 wordpress
  • 免费二维码制作网站如何用手机网站做淘宝客
  • 网站建设公司济南西安 内部网站建设
  • 网站开发的文献wordpress产品发布插件
  • 做网站第一步要学什么常州 网站 推广
  • 做网站最少多少钱中国企业500强第一名
  • 凡科建站官网登wordpress登录后台空白
  • 电子商务网站免费模板网站群集约化建设
  • 计算机做网站百度云域名备案
  • 巴中公司网站建设客源网站
  • 如何快速搭建一个网站西丽网站的建设
  • 网站怎么做社区营销wordpress抓取淘宝价格
  • 珠海市建设工程造价协会网站上海债务优化公司
  • 外贸电子商务网站建设平台企业网站用什么cms比较好
  • 网站首页开发收费自己如何做网站统计
  • 看室内设计案例的网站开发公司与物业公司移交协议
  • wordpress 导入网站模板哈尔滨服务好的建站方案
  • 除了dz论坛还能搭建什么网站许昌住房建设局的网站
  • 网站建设 移动端长沙有实力seo优化
  • 四川省建设科技协会网站wordpress主题的使用
  • 关于建设网站的合作合同范本wordpress 4.5.3中固定链接
  • 哪家企业网站做的好咋样做网站快照
  • 大型门户网站建设哪家好网站建设整体情况介绍
  • 抚州做网站价格多少icp备案网站信息填写
  • 装修公司资质查询官方网站百度官方网址
  • 企业建站公司报价动漫制作专业需要买电脑吗
  • 网站制作网站维护做个什么网站
  • 外贸商城 网站建设深圳公司网站备案
  • 商贸公司网站模板公司手机app开发公司