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

企业网站管理系统如何使用说明深圳制作网站建设的企业

企业网站管理系统如何使用说明,深圳制作网站建设的企业,重庆网上房地产查询,介绍网络营销的短文建造者模式(Builder Pattern)学习笔记 1. 模式定义 建造者模式是一种创建型设计模式,通过分步构建复杂对象的方式,将对象的构建过程与表示分离。允许使用相同的构建过程创建不同的对象表示。 2. 适用场景 ✅ 需要创建包含多个…

建造者模式(Builder Pattern)学习笔记

1. 模式定义

建造者模式是一种创建型设计模式,通过分步构建复杂对象的方式,将对象的构建过程与表示分离。允许使用相同的构建过程创建不同的对象表示。

2. 适用场景

✅ 需要创建包含多个部件的复杂对象

✅ 需要控制对象的创建过程(分步骤构建)

✅ 需要构建不同表示的对象(相同构建过程不同实现)

✅ 希望避免构造器参数过多(解决"伸缩构造函数"问题)

3. 模式结构

Director
-builder: Builder
+construct()
«interface»
Builder
+buildPartA()
+buildPartB()
+getResult()
ConcreteBuilder
-product: Product
+buildPartA()
+buildPartB()
+getResult()
Product
+partA
+partB
+show()

4. 核心角色

角色说明
Director指挥者,控制构建过程(非必须)
Builder抽象建造者,定义构建步骤的接口
ConcreteBuilder具体建造者,实现构建步骤并返回产品
Product最终构建的复杂对象

5. 代码示例

5.1 产品类

public class Computer {private String cpu;private String ram;private String storage;// 构造函数、getters、toString...
}

5.2 抽象建造者

public interface ComputerBuilder {void buildCPU();void buildRAM();void buildStorage();Computer getResult();
}

5.3 具体建造者

public class GamingComputerBuilder implements ComputerBuilder {private Computer computer = new Computer();@Overridepublic void buildCPU() {computer.setCpu("Intel i9-13900K");}@Overridepublic void buildRAM() {computer.setRam("64GB DDR5");}@Overridepublic void buildStorage() {computer.setStorage("2TB NVMe SSD");}@Overridepublic Computer getResult() {return computer;}
}

5.4 指挥者(可选)

public class Director {private ComputerBuilder builder;public Director(ComputerBuilder builder) {this.builder = builder;}public Computer construct() {builder.buildCPU();builder.buildRAM();builder.buildStorage();return builder.getResult();}
}

5.5 客户端调用

public class Client {public static void main(String[] args) {ComputerBuilder builder = new GamingComputerBuilder();Director director = new Director(builder);Computer computer = director.construct();// 或直接使用建造者ComputerBuilder builder2 = new OfficeComputerBuilder();builder2.buildCPU();builder2.buildRAM();Computer simpleComputer = builder2.getResult();}
}

6. 模式变种

  1. 链式调用版
public class Computer {// 使用静态内部类实现public static class Builder {private String cpu;private String ram;public Builder withCPU(String cpu) {this.cpu = cpu;return this;}public Builder withRAM(String ram) {this.ram = ram;return this;}public Computer build() {return new Computer(this);}}
}
// 使用:new Computer.Builder().withCPU("i7").withRAM("16GB").build();

7. 优缺点分析

✔️ 优点

  • 分离构建过程和表示
  • 更好的控制构建过程
  • 方便扩展新的产品类型
  • 避免过多构造函数参数

缺点

  • 增加代码复杂度
  • 产品需要高度相似才适用
  • 对简单对象的创建可能显得冗余

8. 相关模式对比

模式关注点复杂度使用场景
工厂模式对象整体创建创建单一类型对象
抽象工厂模式产品族的创建创建相关对象家族
建造者模式分步构建复杂对象需要分步骤构建的复杂对象

9. 实际应用案例

  • Java中的StringBuilder
  • Spring中的BeanDefinitionBuilder
  • Lombok的@Builder注解实现
  • Android中的AlertDialog.Builder

10. 最佳实践建议

  1. 当构造器参数超过4个时考虑使用
  2. 需要创建不可变对象时优先使用
  3. 使用链式调用增强可读性
  4. 当构建顺序重要时一定要保留Director角色

📌 记忆技巧:把建造者模式想象成"分步填表"的过程,最后提交表格生成完整对象。

http://www.yayakq.cn/news/740054/

相关文章:

  • 湖北工程建设招投标中心网站做网站有一行一行写代码的吗
  • 贾汪网站开发淄博建网站
  • 简洁的网站模板阿里云可以后台一键安装wordpress
  • 网站建设与管理基础及实训(php版)张家口远大建设集团网站
  • 南京老牌网站建设公司望野古诗
  • 怎么在自己的网站加关键词深圳网站建设黄浦网络-技术差
  • 天津哪里可以做网站温州快建网站
  • 如何用阿里云建网站网站开通微信支付收费
  • 百度网站源码优化检测佛山网络发言人平台
  • 用idea做html网站免费下载图片设计
  • 做资源的教育类网站或公司温州建设小学的网站
  • 网站前置审批流程网站建设+太原
  • 网站制作公司的流程WordPress会话有效时间
  • 公司制作网站流程福州网站设计大概多少钱
  • 北京网站制作定制点墨网站
  • 大理悦花轩客栈在哪些网站做推广自己的电脑做网站空间视屏
  • 台州网站制作开发访问外国网站速度慢
  • 桓台网站开发客户的70个渠道
  • 免费新建网站wordpress注册验证码
  • 建设网站会员深圳做棋牌网站建设有哪些公司
  • 华为企业网站建设需求分析国外物流公司网站模板
  • php做学校网站免费下载视频网站开发的难点
  • 企业网站建设公司宣武学做ppt的网站
  • 网站网页设计屏幕尺寸济南房产网官网首页
  • 网站开发公司挣钱吗邯郸人才网
  • 邯郸网站建设怎么做cms监控手机客户端
  • 查询网站是否正规商贸有限公司起名
  • 网站模块删除具备网站维护与建设能力
  • 小说网站建设方案书ppt网页设计制作的软件有哪些
  • 网站首页导航栏怎么做wordpress淘宝客 采集