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

青岛seo网站建设网站备案换公司吗

青岛seo网站建设,网站备案换公司吗,网页正在升级访问每天,沧州网站优化公司文章目录概念相关图示代码示例框架中的应用场景多个生成器#xff08;Concrete Builder#xff09;#xff1a;单个生成器概念 生成器设计模式#xff08;Builder Design Pattern#xff09;是一种创建型设计模式#xff0c;用于处理具有多个属性和复杂构造过程的对象。生… 文章目录概念相关图示代码示例框架中的应用场景多个生成器Concrete Builder单个生成器概念 生成器设计模式Builder Design Pattern是一种创建型设计模式用于处理具有多个属性和复杂构造过程的对象。生成器模式通过将对象的构建过程与其表示分离使得相同的构建过程可以创建不同的表示。这有助于减少构造函数的参数个数提高代码的可读性和可维护性。 生成器模式的核心组件包括 产品Product需要创建的复杂对象。抽象生成器Builder定义用于创建产品对象各个部分的接口。具体生成器Concrete Builder实现抽象生成器接口负责创建和组装产品的各个部分。指挥者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://www.w-s-a.com/news/28235/

相关文章:

  • 不用代码做网站网站建设和运行费用
  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书
  • 大连哪里有手机自适应网站建设公司网站介绍模板 html
  • 佛山模板建站宣传片制作公司电话
  • 文字网站居中能自己做网站接业务吗
  • 免备案自助建站网站广州珈瑶公司是哪一年注册的
  • ps做网站界面wordpress为图片添加圆角
  • seo优化推广业务员招聘seo顾问服务福建
  • 成都私人网站建设seo网站推广方案策划书
  • 广州网站建设工作室wordpress log
  • 网站后台添加wordpress h1标签优化