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

网站建设合同 知乎抄袭网站模板

网站建设合同 知乎,抄袭网站模板,网站设计服务合同,phpcms v9文章目录概念相关图示代码示例框架中的应用场景多个生成器#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/14455725/

相关文章:

  • 网站素材设计框架黑河企业网站建设公司
  • 网站建设属于什么领域深圳seo优化推广
  • 企业门户网站建设与发展趋势男科
  • 做网站什么需要好网站备案号查询网址
  • 衡水网站设计公司哪家专业中山网页网站设计模板
  • 做影视网站风险大吗wordpress主题修改字体
  • 网站建设分几模块哈尔滨做网站公司有哪些
  • 如何通过建立网站赚钱人工智能教育培训机构排名
  • 国外做外贸哪个网站好些国内做网站建设最好的公司是
  • 婚庆公司网站建设得多少钱网站建设 中企动力北京
  • 做网站需要多大空间泉州优化营商环境
  • 做一个在线交易网站需要多少钱温州论坛官方网
  • 手机网站seo怎么做优化产业结构
  • 深圳好看的网站建设哪家公司好常州seo招聘
  • 免费网站后台广州小型网站建设公司
  • 网站开发硬件要求哪个网站做摄影师好
  • svg图片做网站背景中企动力科技股份有限公司网站
  • 适合大学生做的网站网站怎么绑定织梦
  • 怎样才能做一个优质的外贸网站wordpress带投稿
  • 惠州城乡规划建设局网站网站优化排名服务
  • 厦门响应式网站制作路由器建wordpress
  • 域名可以同时做邮箱和网站么法人查询企业名称
  • 网站建设怎么做网站亚马逊网上商城是正品吗
  • 全景旅游网站建设网页游戏排行榜电脑
  • 建网站注册三亚久爱传媒招聘信息
  • 中国关键词网站自媒体平台收益
  • 来宾网站建设公司网站建设与规划论文
  • 北京专业网站建设服务商wordpress 首页尾页
  • 网站后台登陆破解响应式网站设计规范
  • 用dw做网站导航的步骤如何推广自己的公司官网