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

中国做网站泰州网站建设 思创

中国做网站,泰州网站建设 思创,龙华营销型网站建设公司,常用的网站开发目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 工作流程 2.3 实现案例 2.4 变体:链式建造者(常见于多参数对象,无需指挥者) 3、优缺点分析 4、适用场景 1、核心思想 目的:将复杂对象的构建过程与其表示分离…

目录

1、核心思想

2、实现方式

2.1 模式结构

2.2 工作流程

2.3 实现案例

2.4 变体:链式建造者(常见于多参数对象,无需指挥者)

3、优缺点分析

4、适用场景


1、核心思想

目的:将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。

           建造者的制造过程不仅要分步完成,还要按照顺序进行,所以建造者的各制造步骤与逻辑都应该被抽离出来独立于数据模型。

2、实现方式

2.1 模式结构

四个核心结构:

  • Product(产品)​:复杂的产品类,构建过程相对复杂,需要其他组件组装而成。
  • Builder(抽象建造者)​:建造者接口,定义了构成产品的各个组件的构建标准,通常有多个步骤。
  • ConcreteBuilder(具体建造者)​:具体的建造者实现类,可以有多种实现,负责产品的组装但不包含整体建造逻辑。
  • Director(指挥者)​:持有建造者接口引用的指导者类,指导建造者按一定的逻辑进行建造。

2.2 工作流程

  1. 客户端创建具体建造者实例,并传递给指挥者。

  2. 指挥者按预定步骤调用建造者的方法。

  3. 具体建造者逐步构建产品的各个部件。

  4. 最终由建造者返回组装完成的产品。

2.3 实现案例

假设构建一个House对象,步骤包括打地基、建墙、装屋顶和装修。不同房屋类型(如木屋、砖房)的建造细节不同,但流程一致。

每一个房屋的结构一致,施工方(具体建造者)不同,会导致最终的房屋产品类型不同。所以如果需要扩展建造的房屋类型,只需要扩展增加具体建造者的实现(比如砖房建造者等),符合开闭原则

// 1、产品类
class House {private String foundation;private String walls;private String roof;// 省略getter/setter
}// 2、抽象建造者
interface HouseBuilder {void buildFoundation();void buildWalls();void buildRoof();House getResult();
}// 3、具体建造者:木屋
class WoodHouseBuilder implements HouseBuilder {private House house = new House();public void buildFoundation() { house.setFoundation("Wood Foundation"); }public void buildWalls() { house.setWalls("Wood Walls"); }public void buildRoof() { house.setRoof("Wood Roof"); }public House getResult() { return house; }
}// 4、指挥者
class ConstructionDirector {public House construct(HouseBuilder builder) {builder.buildFoundation();builder.buildWalls();builder.buildRoof();return builder.getResult();}
}// 5、客户端使用
public class Client {public static void main(String[] args) {HouseBuilder builder = new WoodHouseBuilder();ConstructionDirector director = new ConstructionDirector();House house = director.construct(builder);}
}

2.4 变体:链式建造者(常见于多参数对象,无需指挥者)

// 产品类
class Person {private String name;private int age;// 其他属性...// 建造者作为静态内部类public static class Builder {private String name;private int age = 0; // 默认值public Builder(String name) { this.name = name; }public Builder age(int age) { this.age = age; return this; }public Person build() { return new Person(this); }}private Person(Builder builder) {this.name = builder.name;this.age = builder.age;}
}// 客户端使用
Person person = new Person.Builder("Alice").age(30).build();

3、优缺点分析

优点:

  1. 分离构建与表示:客户端无需了解内部构造细节。

  2. 灵活扩展:通过新增建造者支持新产品类型。

  3. 精细控制:分步骤构建,便于管理复杂对象的创建过程。

缺点:

  1. 代码冗余:需编写多个建造者类,增加代码量。

  2. 适用范围有限:仅当对象构造复杂或存在多种表示时适用。

4、适用场景

  • 对象包含多个部件,且构建过程需相同步骤。

  • 构造过程需支持不同配置或表示(如生成不同格式文档)。

  • 需要创建的对象具有大量可选参数或复杂依赖。


文章转载自:

http://2ti4cXLI.rszwc.cn
http://LwEPY425.rszwc.cn
http://u3n848IF.rszwc.cn
http://Fksg09sR.rszwc.cn
http://JlOBfJLJ.rszwc.cn
http://r8vfyKQm.rszwc.cn
http://7oB0HXU1.rszwc.cn
http://cFrQbePR.rszwc.cn
http://RfKBzVd8.rszwc.cn
http://dYtclhIZ.rszwc.cn
http://AaXjf5Bs.rszwc.cn
http://d1VDyp7d.rszwc.cn
http://h5m7Y1PN.rszwc.cn
http://nuOHC7om.rszwc.cn
http://LIyK6L4M.rszwc.cn
http://LgCJ9Q4q.rszwc.cn
http://gvLH81rV.rszwc.cn
http://EKE4k3nE.rszwc.cn
http://mye2d26m.rszwc.cn
http://xNDywwuo.rszwc.cn
http://uqCRYFeL.rszwc.cn
http://TmSC2Ugz.rszwc.cn
http://T3nSnAPs.rszwc.cn
http://4zIuhcpZ.rszwc.cn
http://NHcklwjS.rszwc.cn
http://pqkAWf60.rszwc.cn
http://g1GDfkXH.rszwc.cn
http://hH2tZVWr.rszwc.cn
http://Qjd3GkjE.rszwc.cn
http://iL3pyiUL.rszwc.cn
http://www.dtcms.com/wzjs/609720.html

相关文章:

  • 上海专业高端网站建设服务蜜雪冰城网络营销论文
  • 杭州做兼职网站天津 网站设计公司
  • 做网站怎么建立文件夹器材管理网站开发
  • 南宁专业网站建设公司腾讯网络游戏大全列表
  • 做模版网站需要租服务器吗电脑更新后wordpress
  • 免费建站宝盒自学做网站多长时间
  • thinkcmf做网站快不快织梦网站模板源码
  • 网站程序 制作个人做网站要注意什么条件
  • jsp网站开发的环境配置高德地图开发平台
  • 做网站能挣钱不360建筑网个人信息怎么改
  • 做个网站要钱吗wordpress模板网站模板
  • 各大网站搜索引擎入口WordPress自己写主题
  • 中国建设银行 英文网站广告设计与制作工资一般多少
  • 旅游投资公司网站建设ppt模板百度做免费推广的步骤
  • 成都开发网站建设广告创意设计竞赛
  • 做论坛网站要多少配置的服务器网站建设群发广告词
  • 大连凯杰建设有限公司网站在网站上做教学直播平台多少钱
  • 网站开发与网页制作难不难网站主题和风格
  • 北京市网站公司wordpress首页文章轮播
  • 南京做网站的公司排名安装wordpress教程
  • 用小程序做视频网站微信小程序需要服务器吗
  • 新手做网页做那个网站简单网页微信版网址
  • 住房和城乡建设部网站进不去网站怎么做图片转链
  • 在家做网站或ps挣钱接活中国企业网
  • 省市网站建设考核标准要求东莞模板建站平台
  • 企业网站建设应遵守的原则页面设置怎么设置
  • 建网站要备案公司如何建设一个网站
  • 网站开发要点做视频网站要多大的主机
  • 石家庄做外贸网站建设手机端企业网站源码
  • 苏州网络公司建网站头条广告入口