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

昆明网站做的好的公司哪家好拓者设计室内设计网

昆明网站做的好的公司哪家好,拓者设计室内设计网,淘客网站怎么做淘口令,网站主题定位文章目录 一、介绍二、代码三、实际使用总结 一、介绍 建造者模式旨在将一个复杂对象的构建过程和其表示分离#xff0c;以便同样的构建过程可以创建不同的表示。这种模式适用于构建对象的算法#xff08;构建过程#xff09;应该独立于对象的组成部分以及它们的装配方式的… 文章目录 一、介绍二、代码三、实际使用总结 一、介绍 建造者模式旨在将一个复杂对象的构建过程和其表示分离以便同样的构建过程可以创建不同的表示。这种模式适用于构建对象的算法构建过程应该独立于对象的组成部分以及它们的装配方式的情景。 建造者模式通常包含以下角色 产品Product 表示被构建的复杂对象。在建造者模式中产品是由多个部件组成的。 抽象建造者Builder 声明了创建产品各个部件的抽象接口。通常包括创建和装配部件的方法。 具体建造者Concrete Builder 实现抽象建造者接口负责具体部件的创建和装配。每个具体建造者都定义了自己的方式来构建产品。 指导者Director 负责使用建造者接口来构建产品对象。通常包含一个构建方法该方法定义了构建产品的顺序。 二、代码 结构图 代码 /*** 产品类由多个部件构成*/ public class Product {private ListString parts new ArrayList();public void add(String part) {parts.add(part);}public void show(){System.out.println(产品部件 ---);for (String part : parts) {System.out.print(part );}} }/*** 抽象建造者类确定产品由两个部件构成并声明一个得到产品的方法*/ abstract class Builder{public abstract void buildPartA();public abstract void buildPartB();public abstract Product getResult(); }class Builder1 extends Builder {private Product product new Product();Overridepublic void buildPartA() {product.add(部件a);}Overridepublic void buildPartB() {product.add(部件b);}Overridepublic Product getResult() {return product;} }class Builder2 extends Builder {private Product product new Product();Overridepublic void buildPartA() {product.add(部件x);}Overridepublic void buildPartB() {product.add(部件y);}Overridepublic Product getResult() {return product;} }/*** 指挥者类用来指挥构建过程*/ class Director {public Product Construct(Builder builder) {builder.buildPartA();builder.buildPartB();return builder.getResult();} }public static void main(String[] args) {Director director new Director();Builder1 builder1 new Builder1();Builder2 builder2 new Builder2();Product result1 director.Construct(builder1);result1.show();Product result2 director.Construct(builder2);result2.show(); }三、实际使用 场景 假设我们要创建一个汽车对象汽车有多个可选的配置包括引擎类型、车身颜色、轮胎类型等。我们将使用建造者模式来实现汽车对象的配置灵活性。 代码 // 产品类汽车 class Car {private String engineType;private String bodyColor;private String tireType;// 构造方法私有化只能通过建造者来构建对象private Car() {}public String getEngineType() {return engineType;}public String getBodyColor() {return bodyColor;}public String getTireType() {return tireType;}// 静态内部类作为具体建造者public static class Builder {private Car car;public Builder() {this.car new Car();}public Builder setEngineType(String engineType) {car.engineType engineType;return this;}public Builder setBodyColor(String bodyColor) {car.bodyColor bodyColor;return this;}public Builder setTireType(String tireType) {car.tireType tireType;return this;}// 构建汽车对象public Car build() {return car;}} }// 客户端 public class BuilderPatternFlexibilityExample {public static void main(String[] args) {// 使用建造者模式构建汽车对象并灵活配置Car car1 new Car.Builder().setEngineType(V8).setBodyColor(Red).setTireType(Summer).build();Car car2 new Car.Builder().setEngineType(Hybrid).setBodyColor(Blue).build();// 输出构建好的汽车对象System.out.println(Car 1 - Engine Type: car1.getEngineType() , Body Color: car1.getBodyColor() , Tire Type: car1.getTireType());System.out.println(Car 2 - Engine Type: car2.getEngineType() , Body Color: car2.getBodyColor() , Tire Type: car2.getTireType());} } 上面的例子中Car 是产品类Car.Builder 是具体建造者。通过具体建造者我们可以设置汽车的各个可选配置最后通过 build 方法得到一个完整的汽车对象。客户端可以根据实际需求来选择设置不同的配置实现了对象配置的灵活性。这种方式可以避免创建多个构造函数以应对各种配置组合的情况使得代码更加简洁和可维护。 总结 上面的代码中我们通过不同的具体建造者同一个指挥者获得了不一样的产品。在我们平时的情况中以下的场景可以用到建造者模式 创建复杂对象 当一个对象的构建过程比较复杂涉及多个步骤、部件组合或配置选项时建造者模式可以将构建过程与最终表示分离使得代码更清晰、可维护。 对象的配置灵活性 当需要创建的对象具有多个配置选项而客户端希望能够以不同的方式组装对象时建造者模式可以提供更灵活的配置选择而无需创建大量的构造函数。 避免构造器参数过多 当一个对象的构造函数参数过多而且可能存在多个可选参数时使用建造者模式可以避免创建过多的构造函数使得代码更加清晰。
http://www.zqtcl.cn/news/244680/

相关文章:

  • 用jquery做网站百度seo排名规则
  • 免备案手机网站室内设计说明
  • 网站被做站公司贩卖怎样将qq空间建设为个人网站
  • 网站开发有哪几类淮安app开发公司
  • 营销网站建设公司哪家好兵团第二师建设环保局网站
  • 做推广最好的网站是哪个深圳办公室装修招标
  • 郑州高端网站制作wordpress那个版本好
  • wordpress屏蔽右键f12奉化首页的关键词优化
  • cn域名做犯法网站做电影网站需要哪些证
  • 官方网站有哪些韶关做网站的公司
  • 商城网站设计公司怎么样网站制作预算
  • 在济南什么人想做网站网站建设后怎么做主页
  • 联合年检怎么做网站上国家备案查询
  • 社交网站wap模板wordpress网址导航插件
  • 沈阳快速建站公司有哪些国外做二手服装网站
  • 手机如何建立网站平台seo比较好的优化
  • 电商网站建设外包禅城南庄网站制作
  • 哈尔滨企业网站开发报价免费php网站源码
  • 东莞市公司网站建设淄博网站制作营销
  • 企业网站无线端怎么做手机网站做成app
  • 让他人建设网站需要提供的材料可在哪些网站做链接
  • 外贸公司做网站3d建模好学吗
  • dedecms新网站 上传到万网的空间上海新媒体运营公司排名
  • 包装东莞网站建设0769三层网络架构
  • 淘客网站自己做固安建站公司
  • 咸阳学校网站建设联系电话网络app开发网站建设价格
  • 没网站怎么做淘宝客网站建设耂首先金手指
  • 网站带做收录排名淘外网站怎么做
  • 网站建设分金手指排名五申请邮箱账号注册
  • 餐饮加盟网站建设字体怎么安装wordpress