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

localhost怎么做网站深圳seo公司助力网络营销飞跃

localhost怎么做网站,深圳seo公司助力网络营销飞跃,网页设计与网站开发经济可行性,好网站开发培训目录 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://www.dtcms.com/wzjs/304592.html

相关文章:

  • 网站平台代理制作网页的工具软件
  • 企业网站建设网站专业服务产品宣传
  • 做网站用什么语言和工具aso网站
  • 内蒙古做网站的公司有哪些专业模板建站
  • 做甜品网站提高网站搜索排名
  • 200M电信宽带做网站互联网推广方式有哪些
  • 网站虚拟空间作用营销策划品牌策划
  • 零基础网页设计培训机构象山seo外包服务优化
  • 营销型网站设计模板百度电话客服
  • 互联二维码生成器seo主要优化哪些
  • 石家庄城乡建设厅网站常见的网络推广方式有哪些
  • 网站里的字体大小俄罗斯搜索引擎入口 yandex
  • 甘肃省建设厅注册中心网站首页公司优化是什么意思
  • 福田做商城网站建设哪家公司便宜点平台优化是什么意思
  • 安陆 网站建设百度开发者平台
  • 中山网站建设制作 .超凡科技关键词数据
  • 网站建设及优化 赣icp网站建设网站设计
  • 网站项目报价方案新手做网络销售难吗
  • 网站开发需要学些什么东莞优化疫情防控措施
  • 上海定制网站建设费用seo软件推广
  • 做网站特别注意什么百度网站的网址是什么
  • 通州城乡建设委房管局官方网站电商平台开发需要多少钱
  • 网站qq链接怎么做常用的关键词优化策略有哪些
  • 重庆企业网站推广报价自己怎么做网址
  • 北湖区网站建设哪家好seo外贸推广
  • 小门户网站模板深圳优化网站
  • 金色世纪做网站的是哪个岗位宁波seo排名外包公司
  • 专业的广州手机网站建设免费访问国外网站的app
  • 如何提升网站搜索排名全球疫情最新数据统计
  • 怎样解除拦截网站设置网站快速收录的方法