这是《小游戏从0到1设计模式重构》系列内容第9篇,所有源码及资料在“程序员LIYI”公众号回复“小游戏从0到1”获取。
建造者模式(Builder Pattern)又称生成器模式,分步构建一个复杂对象,并允许按步骤构造。同样的构建过程可以采用不同的表示,将一个复杂对象的 构建层与其表示层分离。
代码也写了几年了,设计模式处于看了忘,忘了看的状态,最近对设计模式有了点感觉,索性就再学习总结下吧。
jQuery中 $('div')和 new$('div')哪个好用?很显然直接 $()最方便 ,这是因为 $()已经是一个工厂方法了。
定义:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。
无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发动机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。
开发中,我们经常需要创建具有多个属性或配置选项的复杂对象。直接通过构造函数或大量的setter方法来设置这些属性可能会导致代码的可读性和维护性下降。建造者模式通过提供一个建造者类来封装复杂对象的创建过程,使得客户端代码可以更加简洁和清晰地构建对象。
本着让读者一看就懂的写作理念,我这里并不打算用官方那种难以理解的概念去解释建造者模式。简单粗暴直接举例说明
建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。我们获得一个对象的时候不是直接new这个对象出来,而是对其建造者进行属性设置,然后建造者在根据设置建造出各个对象出来。建造者模式又可以称为生成器模式。
建造者模式 : 将 一个复杂对象 的 构建过程 与其 表示 分离 , 使得 同样的构建过程 , 可以 创建不同的表示 ;
建造者模式(Builder)可以将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。也就是说如果我们用了建造者模式,那么用户只需要指定需要建造的类型就可以得到所需要的东西,而具体建造的过程和细节不需要知道。建造者模式实际,就是一个指挥者,一个建造者和一个用户。用户调用指挥者,指挥者调用具体建造者工作,建造者建造出具体的东西给用户。
在软件开发过程中,我们经常面临着构建复杂对象的问题。这些对象可能具有多个属性,并且在创建过程中可能需要进行一系列复杂的初始化步骤。为了简化这个过程,我们可以使用设计模式中的建造者模式。
1)需要建房子 :这一过程为打桩、砌墙、封顶 2)房子有各种各样的,比如普通房、高楼、别墅,各种房子的过程虽然一样,但是要求不要相同的。
建造者模式(Builder Pattern)也叫做生成器模式,是 GoF 的 23 种设计模式的一种,它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
首先,建造者模式的封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和建造者类是比较稳定的,因此,将主要的业务逻辑封装在导演类中对整体而言可以取得比较好的稳定性。
墨菲定律中提道:任何事都没有表面看起来的那么简单。无论在现实生活中还是在代码世界中,都存在一些复杂的对象,他们由多个部分组成,每个部分各具功能,协同运作。比如手机包含摄像头、CPU、电池等各种零部件。对于大部分用户而言,无须知道部件之间的组装细节,也几乎不会单独使用某个零部件,而是使用一部完整的手机。如果需要详细关注一个产品部件的生产、安装步骤,可以选择建造者模式对其进行设计与描述,将部件和其组装过程分开,分步创建一个复杂的对象。由于组装部件的过程复杂,因此,装配过程被分离到一个称作建造者的对象里,建造者返回给上层一个完整产品,而无需关心该产品的构建细节,这就是建造者模式的核心思想。
设计模式是面向对象编程中的重要概念,它提供了一种解决常见问题的通用方法。在本文中,我们将深入探讨建造者模式,探讨它的定义、应用场景以及如何使用示例代码实现。
其中 setPart 方法是零件的配置, 其他的对象, 获得一个不同零件,或者不同的装配顺序就可能产生不同的产品
本文实例讲述了PHP设计模式之建造者模式(Builder)原理与用法。分享给大家供大家参考,具体如下:
造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
一个复杂的对象往往由多个子部件按一定的步骤组成。例如,汽车由发动机、轮胎、方向盘等部件组成的。
房子有各式各样的, 比如普通房, 高楼, 别墅, 过程虽然一样, 要是要求不要相同的
设计模式(Design Pattern)是软件开发领域的宝贵经验,是多人反复借鉴和广泛应用的代码设计指导。它们是一系列经过分类和归纳的代码组织方法,旨在实现可重用性、可维护性和可理解性。使用设计模式,我们能够编写高质量的代码,使其更易于他人理解,并提供了代码可靠性的保证。
所谓建造者模式就是将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。 建造者模式类图
Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_Guide
这些天在阅读MyBatis的源码,发现MyBatis源码中运用了很多设计模式,例如:模板模式,建造者模式,装饰器模式。其中最常用的就是建造者模式。下面我们就来学习下建造者模式。
在本篇文章中,我们重点介绍建造者模式(Builder Pattern),建造者模式顾名思义,与建造创建相关。事实也是如此建造者模式也是创建型中的一种。在我们平常生活中会有比较复杂的东西的组成过程。比如电脑组成、手机组成、电视组成、等等。就拿电脑组成来说。可以由主板、Cpu、显卡等等组成。但是组成的算法步骤是一样的。只是不同的东西组装起来结果不一样而已。
建造者模式一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就 可以构建它们,用户不需要知道内部的具体构建细节。
建造者模式(Builder Pattern)是一种创建型设计模式,它可以将一个复杂对象的构建过程分解为多个步骤,使得同一个构建过程可以创建不同类型的对象。建造者模式的主要优缺点如下:
🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅!
建造者模式是一种创建型设计模式,它将对象的构建过程与其表示分离,以便于相同的构建过程可以创建不同的表示。
这是一篇学习笔记,内容很多是来源于网上的资料,然后按照自己学习情况进行的总结。 我的个人博客:海加尔金鹰
设计模式(四):建造者模式
建造者模式Builder Pattern又可以称为生成器模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,建造者模式属于对象创建型模式。
举个例子:比如我要写一本书那么写这个书需要书名、作者、标题、内容等,但是这本书要创作完成需要一个人来创作吧,当然这个人就是作者,也可能不是(比如蹭书的编写作者)。至于这个书该怎么写是先写标题还是先写作者或者是内容这个是构建者(作者)来决定的。
在Java中,建造者模式由一个包含多个方法的Builder类和一个需要构建的复杂对象类组成。Builder类负责设置复杂对象的各个部分,而复杂对象类则负责实际构建对象。
我们知道,常见的设计模式通常分为三大类:创建型模式、行为型模式、结构型模式。今天我们来聊聊创建型模式中的建造者模式,关于它的使用场景、优缺点、组成部分、实战实例讲解以及在JDK中的运用。
建造者模式又叫做生成器模式,是23种设计模式中的一种创建型模式。建造者模式,顾名思义,就是为创建对象而生的模式。
没有人买车会只买一个轮胎或一个方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式需要解决的问题。
所谓万丈高楼平地起,但是我们建造(Build)高楼时,需要经历很多阶段,比如打地基、搭框架、浇筑水泥、封顶等,这些都是很难一气呵成的。所以一般我们是先建造组成高楼的各个部分,然后将其一个个地组装起来,好比搭积木一般,分阶段拼接后组装成一个完整的物体。还有个问题,就是同样的积木,同样的搭建过程,却能 Build 出不同的物体,这就叫做建造者模式。
某游戏软件公司决定开发一款基于角色扮演的多人在线网络游戏,玩家可以在游戏中扮演虚拟世界中的一个特定角色,角色根据不同的游戏情节和统计数据(例如力量、魔法、技能等)具有不同的能力,角色也会随着不断升级而拥有更加强大的能力。
Pizza 的制作流程包括:准备(擀面皮、加佐料),然后烘烤、切片、装盒。这些有特定的顺序,不能错乱。
在软件系统开发过程中,我们常常会需要一个创建过程复杂的对象,这个复杂的对象由多个子部件按照指定的步骤组合而成。由于需求的变化,这个复杂的对象各个部分经常面临着变化,但是将它们组合的步骤相对稳定。
建造者模式是一种创建型设计模式,它通过将一个复杂的对象分解为多个简单的对象并按照一定的顺序进行组装而创建出一个复杂的对象。这样可以使得构造过程更加灵活,同时也可以隐藏创建过程的复杂性。
在软件开发的过程中,当需要创建一个复杂对象时,该对象由多个子部件按一定算法组合而成,例如计算机(对象)是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。由于需求的变化,复杂对象的各个部分经常面临剧烈的变化,但将它们组合在一起的算法相对稳定。
设计模式——建造者模式
建造者模式是一种创建型设计模式,它将复杂对象的创建过程分解成多个简单的步骤,从而使得对象的创建过程更加灵活和可控。在Spring Boot应用中,建造者模式常被用于构建复杂的对象或配置信息,例如数据源、HTTP客户端或其他需要大量配置的组件。
Builder:抽象建造者。它声明为创建一个Product对象的各个部件指定的抽象接口。 ConcreteBuilder:具体建造者,实现Builder抽象接口,构建和装配各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。 Director:指挥者。构建一个使用Builder接口的对象。它主要是用于创建一个复杂的对象,它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生产过程。 Product:产品角色。表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。
设计模式专题(七)——建造者模式 (原创内容,转载请注明来源,谢谢) 一、概述 建造者模式(Builder),又称生成器模式,是将一个复杂的对象的构建与它的表示进行分离,使得同样构建的过程可以获取不同的表示,即可以通过构建过程中输入的参数不同,获取不同的构建结果,但是构建出来的内容必须包含的元素一定会存在。 使用建造者模式,用户只需要输入建造类型,就可以获取所需要的结果,而不用关心具体的构造细节。这样做的好处在于,当实现某个内容,需要的操作步骤很多,就可以通过建造者模式来进行统筹控制,而不会遗漏、错误使
领取专属 10元无门槛券
手把手带您无忧上云