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

大学生建设什么网站好网站建设 工具

大学生建设什么网站好,网站建设 工具,网站实现语言转换技术上该怎么做,建站模板wordpress文章目录概念相关图示代码示例框架中的应用场景多个生成器#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.hkea.cn/news/14272436/

相关文章:

  • 营销网站 建设 高端网站内页检测
  • 广州旅游网站建设设计公司网页视频下载提取
  • 光速网络网站网页创意设计
  • 专业网站的公司手机搭建网站
  • 手机网站建好怎么发布公司营销型网站制作
  • 潍坊注册公司流程和费用标准上海搜索引擎优化公司
  • 吉林省住房建设保障厅网站台州网站开发公司
  • 网站域名要多少钱淘客怎样做网站
  • 丹江口网站建设360优化关键词
  • 怎样做二维码网站应用软件开发工程师
  • 网站友链是什么情况wordpress主题在线编辑
  • 怎么下载建设银行网站网站开发进修
  • 外贸网站建设要求终端平台网站建设
  • 达孜网站建设网站如何在google提交收录
  • 网站建设查看框架的源代码室内装修公司招聘信息
  • 流放之路做长老环的网站想做一个自己的网站怎么做
  • dede网站改成自适应seo站长之家
  • 深圳网站建设最专业的wordpress加个文本框
  • 模型网站大全免费深圳的产品设计公司
  • 黄冈做网站中山移动网站设计公司
  • 东莞市专注网站建设服务机构东莞网络推广及优化
  • 做网盘网站的成本wordpress本地速度
  • 重庆手机网站建设网络加速器手机版
  • 商业网站有什么作用商城网站建设是+什么软件
  • 学做彩票网站crazyuncle WordPress
  • 网站排名点击工具客户管理系统简称
  • 注册域名网站备案网络营销作业策划方案
  • 秦皇岛网站制作的流程巨野做网站
  • 吴江规划建设局网站南宁网站建设产品介绍
  • 深圳集团网站开发网站开发公司电话建设银行网站会员怎么注册