00、前言
上期浅析了设计模式中 单例模式。还没阅读过的小伙伴,可以去看看,期待交流。今天要浅析的是建造者模式。我们将以定义,内容,使用场景,类图,Android 中的建造者模式来分享建造者模式。
01、定义
建造者模式是一种对象创建模式,它通过将对象的构建过程分解成多个步骤来创建复杂的对象。它允许您使用相同的构建过程来创建不同类型的对象,并且可以更加灵活地控制构建过程。
02、组成与类图
[图源图解设计模式]
建造者模式通常由以下几个组成部分组成:
-
产品类(Product):产品类是最终创建的对象,它包含了需要被构建的所有属性和方法。
-
抽象建造者类(Builder):抽象建造者类定义了创建产品的抽象方法,并且通常还包括一些通用的构建步骤。
-
具体建造者类(Concrete Builder):具体建造者类实现了抽象建造者类中定义的方法,并负责构建产品的各个部分。
-
指挥者类(Director):指挥者类负责使用建造者类的接口来构建产品。它通常包含一个构建方法,该方法将一系列步骤按照特定的顺序组织起来,以便构建出一个完整的产品。
03、使用场景
建造者模式通常适用于以下场景:
-
创建复杂对象时,需要一步一步地构建其各个部分,并且每个部分可以按照不同的方式构建。
-
需要构建多个对象,并且这些对象之间有一些相似之处。
-
需要更加灵活地控制对象的构建过程。
04、Android 中的建造者模式
-
Notification.Builder:用于构建通知对象的类,通知可以在 Android 系统中显示。Notification.Builder 允许您自定义通知的各个部分,例如标题、消息、图标等。
-
Retrofit.Builder:Retrofit 是一个流行的 HTTP 客户端库,它可以帮助您轻松地与 REST API 进行交互。Retrofit.Builder 用于构建 Retrofit 对象,它允许您指定一些重要的参数,例如服务器的基本 URL、转换器、拦截器等。
-
OkHttpClient.Builder:OkHttpClient 是另一个流行的 HTTP 客户端库,它提供了丰富的功能和定制选项。OkHttpClient.Builder 用于构建 OkHttpClient 对象,它允许您指定一些重要的参数,例如超时时间、缓存、拦截器等。
-
AlertDialog.Builder、PopupMenu.Builder、Toast.Builder 等等 Android 系统自带的 UI 控件也都使用了建造者模式。
05、结语
建造者模式是一种在 Android 开发中非常常见的设计模式,它可以帮助我们更加灵活地构建对象,并且可以提高代码的可读性和可维护性。