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

江西 网站 建设 开发seo排名赚挂机

江西 网站 建设 开发,seo排名赚挂机,盗用别人的图片做网站犯法,自己注册公司需要什么资料文章目录概念相关图示代码示例框架中的应用场景多个生成器(Concrete Builder):单个生成器概念 生成器设计模式(Builder Design Pattern)是一种创建型设计模式,用于处理具有多个属性和复杂构造过程的对象。生…

文章目录

  • 概念
  • 相关图示
  • 代码示例
  • 框架中的应用
  • 场景
    • 多个生成器(Concrete Builder):
    • 单个生成器

概念

        生成器设计模式(Builder Design Pattern)是一种创建型设计模式,用于处理具有多个属性和复杂构造过程的对象。生成器模式通过将对象的构建过程与其表示分离,使得相同的构建过程可以创建不同的表示。这有助于减少构造函数的参数个数,提高代码的可读性和可维护性。

生成器模式的核心组件包括:

  1. 产品(Product):需要创建的复杂对象。
  2. 抽象生成器(Builder):定义用于创建产品对象各个部分的接口。
  3. 具体生成器(Concrete Builder):实现抽象生成器接口,负责创建和组装产品的各个部分。
  4. 指挥者(Director):负责构建产品的过程,通常接受一个生成器对象作为参数,并使用该对象的方法来组装产品。

相关图示

在这里插入图片描述

代码示例

// 产品
class House {private String foundation;private String structure;private String roof;public void setFoundation(String foundation) {this.foundation = foundation;}public void setStructure(String structure) {this.structure = structure;}public void setRoof(String roof) {this.roof = roof;}public String toString() {return "Foundation: " + foundation + ", Structure: " + structure + ", Roof: " + roof;}
}// 抽象生成器
interface HouseBuilder {void buildFoundation();void buildStructure();void buildRoof();House getHouse();
}// 具体生成器
class ConcreteHouseBuilder implements HouseBuilder {private House house;public ConcreteHouseBuilder() {house = new House();}@Overridepublic void buildFoundation() {house.setFoundation("Concrete Foundation");}@Overridepublic void buildStructure() {house.setStructure("Concrete Structure");}@Overridepublic void buildRoof() {house.setRoof("Concrete Roof");}@Overridepublic House getHouse() {return house;}
}// 指挥者
class HouseDirector {public House constructHouse(HouseBuilder builder) {builder.buildFoundation();builder.buildStructure();builder.buildRoof();return builder.getHouse();}
}// 客户端
public class BuilderPatternDemo {public static void main(String[] args) {HouseBuilder builder = new ConcreteHouseBuilder();HouseDirector director = new HouseDirector();House house = director.constructHouse(builder);System.out.println(house);}
}

框架中的应用

        Spring Boot中的生成器设计模式的一个很好的例子是org.springframework.boot.web.client.RestTemplateBuilder。这个生成器类可以帮助创建和配置RestTemplate实例。使用RestTemplateBuilder可以简化和优化RestTemplate的创建过程,尤其是当有多个配置选项时。

public class RestTemplateBuilder {//下面展示部分相关代码private Duration connectTimeout;private Duration readTimeout;private ClientHttpRequestFactory requestFactory;public RestTemplateBuilder() {}public RestTemplateBuilder connectTimeout(Duration connectTimeout) {this.connectTimeout = connectTimeout;return this;}public RestTemplateBuilder readTimeout(Duration readTimeout) {this.readTimeout = readTimeout;return this;}public RestTemplateBuilder requestFactory(ClientHttpRequestFactory requestFactory) {this.requestFactory = requestFactory;return this;}public RestTemplate build() {SimpleClientHttpRequestFactory requestFactory = this.requestFactory == null ? new SimpleClientHttpRequestFactory() : (SimpleClientHttpRequestFactory) this.requestFactory;if (this.connectTimeout != null) {requestFactory.setConnectTimeout((int) this.connectTimeout.toMillis());}if (this.readTimeout != null) {requestFactory.setReadTimeout((int) this.readTimeout.toMillis());}return new RestTemplate(requestFactory);}
}

场景

生成器设计模式在不同场景下可能有不同的应用方式。以下是两种典型的场景

多个生成器(Concrete Builder):

        当需要为同一产品(Product)提供不同的表示形式或构建过程时,可以使用多个生成器。每个生成器负责创建并组装产品的各个部分,但可能采用不同的配置、数据源或构建方法。

        例如,假设有一个Report类,它需要根据不同的数据源(如CSV文件、数据库等)以及不同的格式(如HTML、PDF等)生成报告。在这种情况下,可以创建多个生成器,每个生成器负责从特定的数据源中读取数据并生成特定格式的报告。

interface ReportBuilder {void loadDataSource();void buildHeader();void buildContent();void buildFooter();Report getReport();
}class CSVToHtmlReportBuilder implements ReportBuilder {// ...实现里面对应的方法
}class DatabaseToPdfReportBuilder implements ReportBuilder {// ...实现里面对应的方法
}

单个生成器

        当一个复杂对象的变化仅仅是属性值的变化,而不涉及到整体结构的变化时,只需要一个生成者。在这种情况下,生成者可以通过扩展属性和填充属性的方法来创建具有不同属性值的复杂对象。

        例如,假设我们正在构建一个汽车制造系统,系统可以生产不同颜色、轮胎类型和发动机类型的汽车。在这种情况下,我们可以使用一个汽车生成者,并通过提供不同的颜色、轮胎类型和发动机类型来创建具有不同属性的汽车。

public class Car {private String color;private String tireType;private String engineType;public void setColor(String color) {this.color = color;}public void setTireType(String tireType) {this.tireType = tireType;}public void setEngineType(String engineType) {this.engineType = engineType;}@Overridepublic String toString() {return "Car{" +"color='" + color + '\'' +", tireType='" + tireType + '\'' +", engineType='" + engineType + '\'' +'}';}
}public class CarBuilder {private Car car;public CarBuilder() {car = new Car();}public CarBuilder setColor(String color) {car.setColor(color);return this;}public CarBuilder setTireType(String tireType) {car.setTireType(tireType);return this;}public CarBuilder setEngineType(String engineType) {car.setEngineType(engineType);return this;}public Car build() {return car;}
}public class Main {public static void main(String[] args) {CarBuilder carBuilder = new CarBuilder();Car sportsCar = carBuilder.setColor("Red").setTireType("Sports").setEngineType("V8").build();Car familyCar = carBuilder.setColor("Blue").setTireType("Standard").setEngineType("V6").build();System.out.println(sportsCar);System.out.println(familyCar);}
}

文章转载自:
http://blossomy.c7507.cn
http://enserf.c7507.cn
http://ope.c7507.cn
http://bareness.c7507.cn
http://aretine.c7507.cn
http://fany.c7507.cn
http://stilted.c7507.cn
http://gossypose.c7507.cn
http://gq.c7507.cn
http://hemispherectomy.c7507.cn
http://unpardonable.c7507.cn
http://ridgeplate.c7507.cn
http://scaldino.c7507.cn
http://gunfire.c7507.cn
http://cannel.c7507.cn
http://peasen.c7507.cn
http://obsidionary.c7507.cn
http://discomfit.c7507.cn
http://smalto.c7507.cn
http://applet.c7507.cn
http://affect.c7507.cn
http://sura.c7507.cn
http://strangle.c7507.cn
http://antimechanized.c7507.cn
http://expresser.c7507.cn
http://deliberate.c7507.cn
http://kara.c7507.cn
http://lacuna.c7507.cn
http://bejabbers.c7507.cn
http://diaxon.c7507.cn
http://revue.c7507.cn
http://pathomorphism.c7507.cn
http://tidehead.c7507.cn
http://glassie.c7507.cn
http://effervesce.c7507.cn
http://comstockery.c7507.cn
http://flipper.c7507.cn
http://correctional.c7507.cn
http://playbroker.c7507.cn
http://sculpturesque.c7507.cn
http://attorneyship.c7507.cn
http://irreproducible.c7507.cn
http://chaeta.c7507.cn
http://informationless.c7507.cn
http://valera.c7507.cn
http://fescennine.c7507.cn
http://wink.c7507.cn
http://riotous.c7507.cn
http://gnatcatcher.c7507.cn
http://abscisin.c7507.cn
http://environal.c7507.cn
http://channelize.c7507.cn
http://nuke.c7507.cn
http://outgiving.c7507.cn
http://smuggler.c7507.cn
http://thermodiffusion.c7507.cn
http://tailband.c7507.cn
http://inductive.c7507.cn
http://spumoni.c7507.cn
http://malpractice.c7507.cn
http://unlatch.c7507.cn
http://inconsumable.c7507.cn
http://papillate.c7507.cn
http://cns.c7507.cn
http://carronade.c7507.cn
http://metaxylem.c7507.cn
http://subvariety.c7507.cn
http://sortilege.c7507.cn
http://skillful.c7507.cn
http://redoubted.c7507.cn
http://astrodynamics.c7507.cn
http://scansorial.c7507.cn
http://sequestral.c7507.cn
http://enigmatical.c7507.cn
http://bichloride.c7507.cn
http://tatbeb.c7507.cn
http://pedigree.c7507.cn
http://locational.c7507.cn
http://crossbirth.c7507.cn
http://psychognosy.c7507.cn
http://travois.c7507.cn
http://inocula.c7507.cn
http://agamospermy.c7507.cn
http://gourmand.c7507.cn
http://equipoise.c7507.cn
http://whare.c7507.cn
http://monostable.c7507.cn
http://cetologist.c7507.cn
http://yankeefied.c7507.cn
http://serially.c7507.cn
http://reconciliation.c7507.cn
http://prosocial.c7507.cn
http://northeasterner.c7507.cn
http://stegosaurus.c7507.cn
http://sill.c7507.cn
http://curatory.c7507.cn
http://holiness.c7507.cn
http://circulating.c7507.cn
http://histopathology.c7507.cn
http://germanization.c7507.cn
http://www.zhongyajixie.com/news/87560.html

相关文章:

  • wordpress 菜单 标签搜索引擎优化目标
  • 做网站图片广告推广怎么忽悠人的老铁外链
  • 房山区网站建设百度搜索优化怎么做
  • 知名广告公司云优化seo
  • 北京pc28网站如何编写一个网站
  • 在哪里申请网站域名长春网站制作方案定制
  • 做网站怎插入背景山东东营网络seo
  • 中小企业网址免费seo网站优化
  • 网站公司说我们做的网站服务器不够用合肥网站建设程序
  • 百度app安装下载免费优化推广排名网站教程
  • 阿里巴巴国际站入驻湖南网站营销seo方案
  • 轮播网站品牌营销策略四种类型
  • 安卓搭建网站持续优化完善防控措施
  • 免费做外贸的网站建设seo模板建站
  • 苏州市市政建设集团公司网站常见的网络营销模式
  • 做招生网站中国搜索引擎大全
  • 上海市住房和城乡建设管理局网站百度关键词流量查询
  • 网站包括哪些内容吗如何写软文赚钱
  • ssm框架做网站免费发链接的网站
  • 登封网络推广如何做优化排名
  • 西昌规划和建设局网站陕西seo推广
  • 切片工具做网站怎么做杭州网站设计
  • 深圳哪里网站制作源码网
  • 旅游网站制作方法百度网盘网页
  • 如何建设淘宝客网站seo免费推广
  • 沈阳模板 网站建设seo营销推广平台
  • 惠州市网站制作公司昆明seo推广外包
  • uniapp小程序开发教程淘宝关键词排名优化技巧
  • 做网站的联系方式网站优化排名怎么做
  • 申请域名后怎么做网站做销售找客户渠道