gRPC源码剖析-Builder模式

这篇具有很好参考价值的文章主要介绍了gRPC源码剖析-Builder模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Builder模式

1、定义

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

2、适用场景

  • 当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。

  • 当构造过程必须允许被构造的对象有不同的表示时。

说人话:当你要构造一个对象它的参数大于4个尤其是有些参数是必选有些是可选的就可以考虑使用Builder构造模式。

3、Builder模式最简单一个例子

创建一个Person对象,姓名和性别是必须的,年龄和身高等其他属性是可选的,我们有几种方法来创建,第一种是用需要写很多个重载的构造函数,另外一种直接使用JavaBean的set方法但没有办法约束是否必选。下面是使用Builder模式构造的代码。

gRPC源码剖析-Builder模式,Java技术,建造者模式

gRPC源码剖析-Builder模式,Java技术,建造者模式

说明

1、创建一个内部静态类Builder,将对象的属性全部搬一份到Builder中。

2、以必须的属性做为参数创建构造函数

3、创建build方法,将Builder对象作为参数调用主类构造方法

4、主类构造方法以Builder作为参数,然后将Builder的所有属性赋给主类对应的属性。

5、上面代码充斥大量重复的get/set方法,可以用Lombok进行简化,这里先不展开讲了。

4、稍微复杂Builder模式类图

gRPC源码剖析-Builder模式,Java技术,建造者模式

  • Builder:一个抽象接口,以规范产品对象的各个组成成分的建造。

  • ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。

  • Director:调用具体建造者来创建复杂对象的各个部分。

  • Product:要创建的复杂对象。

二、gRPC中Builder模式使用

在gRPC框架中Builder模式使用的比较多,比如启动gRPC这个代码

Server server = ServerBuilder.forPort(50052).addService(new OrderServiceImpl()).build().start();

就是通过ServerBuilder来构建Server对象。UML类图如下

gRPC源码剖析-Builder模式,Java技术,建造者模式

另外gRPC编译生成的gprc桩中也大量使用了Builder模式

gRPC源码剖析-Builder模式,Java技术,建造者模式

关于设计模式的概念对于业务开发人员掌握常用的几种就行(用得最多的是策略模式),但要读懂各底层框架,还是需要对所有设计模式都有所了解,否则很难读得懂源代码,并且好多设计模式加上各种变种容易搞混,似是而非,看似简单掌握起来确不容易,用好更难。文章来源地址https://www.toymoban.com/news/detail-728442.html

到了这里,关于gRPC源码剖析-Builder模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 建造者模式-Builder Pattern

    原文地址:https://jaune162.blog/design-pattern/builder-pattern/ 现在一般大型的业务系统中的消息通知的形式都会有多种,比如短信、站内信、钉钉通知、邮箱等形式。虽然信息内容相同,但是展现形式缺不同。如短信使用的是纯文本的形式,钉钉使用的一般是Markdown的形式,而邮箱则

    2024年02月20日
    浏览(35)
  • 建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是最复杂的创建型模式,它 用于创建一个包含多个组成部分的复杂对象 ,可以返回一个完整的产品对象给用户。它通过将 客户端与包含多个组成部分的复杂对象的创建过程分离 ,使得 客户端无需知道复杂对象的内部组成部分与装配方式,只需要

    2024年02月03日
    浏览(62)
  • 设计模式——建造者模式(Builder Pattern)

    概述        建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。它关注如何一步一步创建一个的复杂对象,不同的具体建

    2024年01月20日
    浏览(49)
  • 设计模式|建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一种创建型设计模式,用于将一个复杂对象的构建过程与其表示分离,以便可以使用相同的构建过程创建不同的表示。 Builder(建造者)接口或抽象类 : 定义了构建对象的各个步骤的方法。 ConcreteBuilder(具体建造者)类 : 实现了 Builder 接口或继

    2024年04月15日
    浏览(57)
  • 设计模式--建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一种创建型设计模式,它关注如何按照一定的步骤和规则创建复杂对象。建造者模式的主要目的是将一个复杂对象的构建过程与其表示分离,从而使同样的构建过程可以创建不同的表示。 在建造者模式中,通常有以下几个核心角色: 产品(Prod

    2024年02月11日
    浏览(38)
  • 设计模式五:建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一种创建型设计模式,用于通过一系列步骤来构建复杂对象。它将对象的构建过程与其表示分离,从而允许相同的构建过程可以创建不同的表示。 建造者模式中的几个角色: 产品(Product):表示被构建的复杂对象。 抽象建造者(Builder):定义了构建复

    2024年02月15日
    浏览(39)
  • (一)创建型设计模式:3、建造者模式(Builder Pattern)

    目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C++实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representation. By doing so the same construction process ca

    2024年02月13日
    浏览(39)
  • gRPC源码剖析-Server启动流程

    创建一个gRPC Server代码很简单就这么两行,我们可以运行起来单步调试来学习一下gRPC Server启动流程。 Server server = ServerBuilder.forPort(50051)                .addService(new OrderServiceImpl())                .build()                .start(); server.awaitTermination(); 绑定端口 调用NettyServer

    2024年02月07日
    浏览(42)
  • 【开源与项目实战:开源实战】77 | 开源实战一(下):通过剖析Java JDK源码学习灵活应用设计模式

    上一节课,我们讲解了工厂模式、建造者模式、装饰器模式、适配器模式在 Java JDK 中的应用,其中,Calendar 类用到了工厂模式和建造者模式,Collections 类用到了装饰器模式、适配器模式。学习的重点是让你了解,在真实的项目中模式的实现和应用更加灵活、多变,会根据具体

    2024年02月11日
    浏览(43)
  • 什么是Java中的Builder模式?

    Java中的Builder模式是一种结构型设计模式,它允许你将一个复杂对象的构建过程分解为多个步骤,使得客户端可以按照一定的顺序构建对象,而无需在每个步骤中都进行实例化。这种模式有助于隐藏对象的构造过程,使得代码更加清晰、易于理解和维护。 下面是一个简单的示

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包