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

成都青羊区建设局网站临沂百度推广多少钱

成都青羊区建设局网站,临沂百度推广多少钱,广州网页制作设计营销,免费个人博客网站模板下载小谈设计模式(14)—建造者模式 专栏介绍专栏地址专栏介绍 建造者模式角色分类产品(Product)抽象建造者(Builder)具体建造者(Concrete Builder)指挥者(Director&#xff0…

小谈设计模式(14)—建造者模式

  • 专栏介绍
    • 专栏地址
    • 专栏介绍
  • 建造者模式
    • 角色分类
      • 产品(Product)
      • 抽象建造者(Builder)
      • 具体建造者(Concrete Builder)
      • 指挥者(Director)
    • 核心思想
    • Java程序
      • 程序分析
    • 优缺点分析
      • 优点
        • 1
        • 2
        • 3
        • 4
      • 缺点
        • 1
        • 2
      • 总结分析

专栏介绍

专栏地址

link

专栏介绍

主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。

建造者模式

建造者模式是一种创建型设计模式,它可以将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。
在这里插入图片描述

角色分类

产品(Product)

表示被构建的复杂对象。通常包含多个部分,如属性、方法等。

抽象建造者(Builder)

定义了构建产品的抽象方法,通常包括构建各个部分的方法和返回产品的方法。

具体建造者(Concrete Builder)

实现了抽象建造者接口,负责具体的产品构建过程。通常包含一个具体产品的实例,通过构建各个部分最终返回该产品实例。

指挥者(Director)

负责调用具体建造者来构建产品,它不知道具体的构建细节,只负责调用构建方法和返回产品。

在这里插入图片描述

核心思想

将构建复杂对象的过程分解为多个简单的步骤,通过不同的具体建造者来实现这些步骤,最终由指挥者来调用具体建造者的方法来构建产品。这样可以使得构建过程更加灵活,可以根据需要选择不同的具体建造者来构建不同的产品。
在这里插入图片描述

Java程序

// 产品类
class Product {private String part1;private String part2;public void setPart1(String part1) {this.part1 = part1;}public void setPart2(String part2) {this.part2 = part2;}public void show() {System.out.println("Part 1: " + part1);System.out.println("Part 2: " + part2);}
}// 抽象建造者
interface Builder {void buildPart1();void buildPart2();Product getResult();
}// 具体建造者
class ConcreteBuilder implements Builder {private Product product;public ConcreteBuilder() {product = new Product();}public void buildPart1() {product.setPart1("Part 1");}public void buildPart2() {product.setPart2("Part 2");}public Product getResult() {return product;}
}// 指挥者
class Director {private Builder builder;public Director(Builder builder) {this.builder = builder;}public void construct() {builder.buildPart1();builder.buildPart2();}
}// 客户端
public class Client {public static void main(String[] args) {Builder builder = new ConcreteBuilder();Director director = new Director(builder);director.construct();Product product = builder.getResult();product.show();}
}

程序分析

在上述代码中,我们定义了一个产品类 Product,它有两个部分 part1 和 part2。然后我们定义了一个抽象建造者接口 Builder,其中包含了构建产品各个部分的方法,并定义了获取最终产品的方法。接着我们实现了具体建造者 ConcreteBuilder,它实现了建造者接口,并具体实现了构建各个部分的方法。然后我们定义了一个指挥者 Director,它负责控制建造过程,通过调用建造者的方法来构建产品。最后,在客户端中,我们创建了一个具体建造者对象,并将其传入指挥者中,然后通过指挥者来构建产品,并最终获取到构建好的产品并展示出来。

在这里插入图片描述

优缺点分析

优点

1

可以将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。

2

可以更加精细地控制对象的构建过程,灵活地添加、删除或修改构建步骤,从而创建不同的产品。

3

可以避免构造方法中出现过多的参数,提高代码的可读性和可维护性。

4

可以通过建造者来隐藏具体产品的实现细节,只暴露统一的构建接口,提高代码的封装性。
在这里插入图片描述

缺点

1

增加了代码的复杂性,需要定义多个类和接口来实现建造者模式。

2

如果产品的组成部分变化较少,或者只有一个具体建造者,建造者模式可能会显得过于繁琐。

总结分析

建造者模式适用于构建复杂对象的场景,通过将构建过程分解为多个步骤,使得构建过程更加灵活,并且可以复用相同的构建过程来创建不同的产品。然而,建造者模式也会增加代码的复杂性,需要权衡使用建造者模式带来的优势和缺点。

在这里插入图片描述

http://www.ds6.com.cn/news/31021.html

相关文章:

  • 北京丰台网站优化又一病毒来了比新冠可怕
  • 长沙公司网站建设搜索引擎优化是什么工作
  • 网站建设要咨询哪些内容桂平seo快速优化软件
  • 做旅游网站的需求分析nba最新排名
  • 网站设计制作报告淄博seo网站推广
  • 佛山技术支持 禅城企业网站亚马逊关键词
  • 五常市网站企业网站设计服务
  • 自己做的网站百度收索不到海外黄冈网站推广
  • 公司网站介绍范文百度推广账号登陆入口
  • 杭州电商网站开发品牌推广的方式有哪些
  • 网站域名空间管理百度公司招聘官网
  • 网站编辑年终总结个人网站免费推广
  • 建设银行打印回单网站广州疫情最新动态
  • 绍兴做外贸网站的公司软件外包公司
  • 网站的留言怎么做草根seo博客
  • 绵阳疫情最新消息云浮seo
  • 合肥优化网站哪家公司好网站快速刷排名工具
  • 做兼职有哪些靠谱的网站有哪些深圳小程序建设公司
  • 什么是 网站收录网络营销方案3000字
  • 太原网站优化优化搜狗排名
  • 公司主页网站怎么做雅虎搜索
  • 做批发在哪个网站好原创代写文章平台
  • 用asp做网站优势长沙市seo百度关键词
  • 汽车网站开发的需求分析经典网络营销案例
  • 讯美深圳网站建设app推广平台排行榜
  • 做b2b网站销售怎样让客户找上门优化视频
  • wordpress文章名字相同的不发布百度seo免费推广教程
  • 企业网站建设费多少钱适合发表个人文章的平台
  • 国家住房城乡建设厅网站微信小程序开发平台官网
  • 手机端网站制作教程百度搜索风云榜电脑版