JavaScript设计模式样例五 —— 建造者模式
建造者模式(Builder Pattern)
定义:使用多个简单的对象一步一步构建成一个复杂的对象。
目的:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
场景:一些基本部件不会变,而其组合经常变化的时候。
// 声明一个产品类
class Product {
constructor () { }
} // 声明一个建造者类
class BuilderProduct {
constructor () {
// 建造产品名称
this.nameBuilder = (name) => {
this.name = name || null
}
// 建造产品版本
this.versionBuilder = (version) => {
this.version = version || null
}
// 建造产品生产日期
this.createTimeBuilder = (createTime) => {
this.createTime = createTime || null
}
// 组合建造产品
this.getProduct = () => {
let product = new Product()
if (this.name) {
product.name = this.name
} if (this.version) {
product.version = this.version
} if (this.createTime) {
product.createTime = this.createTime
} return product
}
} } // 声明一个需求类
class Demand {
constructor (demands) {
let builderProduct = new BuilderProduct()
builderProduct.nameBuilder(demands.name)
builderProduct.versionBuilder(demands.version)
builderProduct.createTimeBuilder(demands.createTime)
return builderProduct.getProduct()
}
} let demand = new Demand({
name: 'SKILL.NULL'
})
Git地址:https://github.com/skillnull/Design-Mode-Example
JavaScript设计模式样例五 —— 建造者模式的更多相关文章
- JavaScript设计模式 样例二 —— 策略模式
策略模式(Strategy Pattern): 定义:定义了一族算法: 封装了每个算法: 这族的算法可互换代替. 目的:将算法的使用与算法的实现分离开来. 场景:可用来消除大量的条件分支语句. 例:J ...
- JavaScript设计模式 样例一 —— 工厂模式
工厂模式(Factory Pattern): 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类.工厂方法让类的实例化推迟到子类中进行. 目的:工厂模式是为了解耦,把对象的创建和使用 ...
- JavaScript设计模式样例四 —— 单例模式
单例模式(Singleton Pattern): 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 目的:阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例. 场景: ...
- JavaScript设计模式 样例三 —— 装饰模式
装饰模式(Decorator Pattern): 定义:在不改变原对象的情况下,动态的给对象添加一些额外的职责.就功能而言,装饰模式相比生成子类更为灵活. 目的:把类的核心职责和装饰功能区分开.可以去 ...
- Java设计模式菜鸟系列(十五)建造者模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39863125 建造者模式(Builder):工厂类模式提供的是创建单个类的模式.而建造者模 ...
- javascript设计模式详解之命令模式
每种设计模式的出现都是为了弥补语言在某方面的不足,解决特定环境下的问题.思想是相通的.只不过不同的设计语言有其特定的实现.对javascript这种动态语言来说,弱类型的特性,与生俱来的多态性,导致某 ...
- javascript设计模式详解之策略模式
接上篇命令模式来继续看下js设计模式中另一种常用的模式,策略模式.策略模式也是js开发中常用的一种实例,不要被这么略显深邃的名字给迷惑了.接下来我们慢慢看一下. 一.基本概念与使用场景: 基本概念:定 ...
- C#设计模式(5)——建造者模式
1.建造者模式介绍 在软件开发中,有时我们要创建一个复杂的对象,这个对象由几个子部件按一定的步骤组合而成,这时候我们就可以使用建造者模式了.说到建造者我们首先想到的是盖房子,盖房子简单的说有三个步骤: ...
- Java设计模式(3)建造者模式(Builder模式)
Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构 ...
- 【读书笔记】读《JavaScript设计模式》之装饰者模式
一.定义 装饰者模式可用来透明地把对象包装在具有同样接口的另一个对象之中.这样一来,你可以给一个方法添加一些行为,然后将方法调用传递给原始对象.相对于创建子类来说,使用装饰者对象是一种更灵活的选择(装 ...
随机推荐
- FEDORA34 安装CUDA11.3
FEDORA34 安装CUDA11.3 首先确保能装上最新的显卡驱动. FEDORA显卡驱动安装 然后去官网下fedora对应的.run安装文件.运行安装, 但不要选装驱动. 完成后加环境变量: # ...
- rar终端常用命令
rar终端常用命令 1. 跳过目录: rar a xxx.rar -x./path_to_dir/ ./xxx/ [注] rar后面的文件夹不需要通配符 2. 加密码 rar a xxx.tar -p ...
- SDL3 入门(4):选择图形引擎
SDL2 创建渲染器时只能指定使用软件渲染还是硬件加速,无法选择使用哪种图形引擎实现硬件加速.SDL3 对此做了优化,可以在创建渲染器时指定 rendering driver 也就是图形引擎,比如在 ...
- zip-zip(子函数调用)
题目 监听服务器端口,得到题目如下: 源码解析 主函数 主函数中是题目界面的逻辑,对应于用户的选择做出相应的操作,其中需要注意的是选项2,解压操作需要获得root权限(uid==0). 选项1,2:文 ...
- Java集合框架总结图
Collection 接口的接口(对象集合) ├---List 接口:元素都有索引,可以重复,有序(迭代器顺序). │------├ LinkedList 接口实现类, 双向链表, 查询慢,增删快,效 ...
- LabVIEW之项目文件结构透析
代码的管理非常重要,LabVIEW本身自带很多代码管理工具.下面来剖析一个相对标准的小项目:
- 内部网关协议RIP
RIP协议的特点:仅和相邻路由器交换信息:交换自己现在的路由表:按固定的时间周期. 对每一个相邻路由器发送的RIP报文,执行以下步骤: 1.对地址为x的相邻路由器发来的报文,修改此报文中的所有项目,把 ...
- [oeasy]python0012_程序写错了怎么办
运行python文件_报错处理_NameError 回忆上次内容 回忆 上次内容 vi oeasy.py 用 vi 编辑 oeasy.py cat oeasy.py 用 cat 查看 oeasy. ...
- C# Expression详解(高级)
LINQ在本地查询IEnumerbale主要是用委托来作为传参,而解析型查询IQueryable则用Expression来作为传参: public static IEnumerable<T> ...
- SQL Server 清除一个数据库下所有表数据,保留表结构
用法:在需要清空数据的数据库创建并执行存储过程,该存储过程并不会影响其他数据库 请小心使用这些脚本,确保在生产环境之前备份您的数据库.️ 存储过程: CREATE PROCEDURE ClearAll ...