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

cms自助建站系统wordpress高端

cms自助建站系统,wordpress高端,搜索小程序,珠海网站制作首页目录 一、前言 二、建造者模式 三、链式编程实现建造者模式 四、总结 一、前言 当我们开发一个软件应用时#xff0c;我们通常需要创建各种对象。有些对象是简单的#xff0c;可以直接实例化#xff0c;但有些对象则比较复杂#xff0c;需要多个步骤才能创建完成。这时…目录 一、前言 二、建造者模式 三、链式编程实现建造者模式 四、总结 一、前言 当我们开发一个软件应用时我们通常需要创建各种对象。有些对象是简单的可以直接实例化但有些对象则比较复杂需要多个步骤才能创建完成。这时候建造者模式就派上用场了。         建造者模式是一种创建型设计模式它允许我们逐步构造一个复杂的对象而且可以控制整个构造过程。 建造者模式中有四个重要的角色 产品Product表明需要构建的产品对象 抽象建造者Builder抽象出来的构建者类用于定义创建对象所需的步骤以及创建的步骤的调用过程 具体建造者ConcreteBuilder抽象建造者的具体实现对于不同的创建过程可以用不同的类进行实现 指挥者Director使用 Builder 的类提供给调用方使用调用方通过使用指挥者来获取产品 整个建造者模式的类图 二、建造者模式 首先建立Product类 public class Product {private String part1;private String part2;private String part3;private String part4;public void setPart1(String part1) {this.part1 part1;}public void setPart2(String part2) {this.part2 part2;}public void setPart3(String part3) {this.part3 part3;}public void setPart4(String part4) {this.part4 part4;}Overridepublic String toString() {return Product{ part1 part1 \ , part2 part2 \ , part3 part3 \ , part4 part4 \ };} } 创建抽象的Builder类 public abstract class Builder {public abstract void buildPart1(String part1);public abstract void buildPart2(String part2);public abstract void buildPart3(String part3);public abstract void buildPart4(String part4);public abstract Product getProduct(); } 创建具体的建造者类ConcreteBuilder public class ConcreteBuilder extends Builder{private Product product new Product();Overridepublic void buildPart1(String part1) {product.setPart1(part1);}Overridepublic void buildPart2(String part2) {product.setPart2(part2);}Overridepublic void buildPart3(String part3) {product.setPart3(part3);}Overridepublic void buildPart4(String part4) {product.setPart4(part4);}Overridepublic Product getProduct() {return product;} } 指挥者类Director public class Director {private Builder builder;public Director(Builder builder) {this.builder builder;}public Product construct(String part1, String part2) {builder.buildPart1(part1);builder.buildPart2(part2);return builder.getProduct();} } 进行测试 public class TestBuilder {public static void main(String[] args) {Builder builder new ConcreteBuilder();Director director new Director(builder);director.construct(part1, part2);builder.buildPart3(part3);Product product builder.getProduct();System.out.println(product);} } 运行结果 这里我是假设其中part1、part2是必须传的参数其余两个参数非必传。 三、链式编程实现建造者模式 链式编程中我们只需要创建一个Product类然后在里面创建静态的ConcreteBuilder类并创建一个构造方法 public class Product {private String part1;private String part2;private String part3;private String part4;public Product(ConcreteBuilder concreteBuilder) {this.part1 concreteBuilder.part1;this.part2 concreteBuilder.part2;this.part3 concreteBuilder.part3;this.part4 concreteBuilder.part4;}Overridepublic String toString() {return Product{ part1 part1 \ , part2 part2 \ , part3 part3 \ , part4 part4 \ };}public static class ConcreteBuilder {private String part1;private String part2;private String part3;private String part4;public ConcreteBuilder(String part1, String part2){this.part1 part1;this.part2 part2;}public ConcreteBuilder builderPart3(String part3) {this.part3 part3;return this;}public ConcreteBuilder builderPart4(String part4) {this.part4 part4;return this;}public Product build() {return new Product(this);}}}最后编写调用类 public class TestBuilder {public static void main(String[] args) {Product product new Product.ConcreteBuilder(part1, part2).builderPart4(part4).build();System.out.println(product);} }运行结果 四、总结 本文中的示例对象都是比较简单的实际开发中这种简单的对象创建并不会使用到建造者模式只有当对象比较复杂的时候才会使用到。 实际使用的代码中比如alibaba的Excel操作com.alibaba.excel.write.builder就使用了建造者模式ExcelWriterBuilder充当了具体的构建者该类继承AbstractExcelWriterParameterBuilder。整个的产品就是一个WriteWorkbook对象。 再比如org.springframework.web.reactive.function.client的WebClient也是使用建造者模式使用WebClient.Builder类来构建WebClient对象。WebClient.Builder类封装了创建WebClient对象的细节提供了一系列的方法来设置WebClient的属性例如设置连接超时时间、设置请求头、设置代理等。最终WebClient.Builder通过build()方法来返回一个完整的WebClient对象。使用建造者模式可以使得WebClient的构建过程更加灵活易于使用和扩展。同时建造者模式将对象构建的过程和具体实现分离开来使得代码更加清晰简洁
http://wiki.neutronadmin.com/news/382136/

相关文章:

  • 网站公司服务器可做域名空间用阿里云和大淘客做网站
  • 好的素材下载网站wordpress游戏评测站睡觉
  • 深圳做app网站建设番禺高端网站制作
  • 电商网站开发方案模板做网站的好项目
  • 台州做网站是什么大型百度云网站建设
  • 贵阳网站建设方案维护河北省住房建设厅网站首页
  • 互联网网站设计简网app工场怎么创app
  • 高密做网站的公司广告公司账务处理
  • 中国建材网站咋制作网站
  • 定制网站制作公司怎么样在线教育网站平台建设的意义
  • 网站收录查询临沂seowordpress网页缓存插件
  • 芜湖营销型网站建设google网站优化器
  • 网站页头是什么房地产市场理论
  • cms网站如何修改做h5页面的网站蘑菇
  • 购买一个网站空间如何可以多个域名使用吗html5单页网站模板
  • app与网站数据交互wordpress qqword
  • 网站升级维护中页面微网站开发教材
  • 网站制作公司多少费用海南建设银行招聘网站
  • 陕西 网站建设 陕ICP广州万安建设监理有限公司网站
  • 做网站需要什么证明嘛宁波专业网站制作
  • 东莞市外贸网站建设多少钱wordpress 模板汉化
  • 济南学生网站建设求职怎样在百度上建网站
  • 天津南开做网站咸阳网站建设推广
  • 网站设计原则的历史南阳网站建设seo
  • 做网页怎么建站点广东网络营销服务
  • 做新闻门户网站需要什么贵阳制作
  • 免费建立小程序网站漂亮的html5网页
  • 同一个服务器可以做多个网站魏县手机网站建设
  • 带后台的php网站模板前端和后端适合什么人
  • phpcms网站后台网站单页支付宝支付怎么做的