JS设计模式——封装与对象(如何使用创建型设计模式更好的封装代码、更好的创建对象)

本文探讨了JavaScript中封装的目的和实现,详细介绍了工厂模式、建造者模式和单例模式的基本结构及应用示例,旨在帮助开发者更好地封装代码和创建对象。
摘要由CSDN通过智能技术生成


前言

在学习如何使用创建型设计模式更好的封装代码、更好的创建对象之前,先了解一下封装与对象。


一、封装

1. 封装目的

1. 定义变量不会污染外部;
2. 能够作为一个模块调用(项目/程序 = 模块 + 沟通);
3. 遵循开闭原则(开闭原则就是建立在封装的基础上的);

2. 什么是好的封装?

1. 变量外部不可见;
2. 调用接口使用;
3. 流出拓展接口;

3. 封装对象时的设计模式

1. 创建一个对象的模式

1. 工厂模式
	目的:方便我们大量创建对象(例如:弹窗);
	应用场景:当某一个对象需要经常创建的时候;
2. 建造者模式
	目的:需要组合出一个全局对象(例如:轮播图);
	应用场景:当要创建单个、庞大的组合对象时‘

2. 保障对象只有一个

1. 单例模式
	目的:需要确保全局只有一个对象;
	应用场景:为了避免重复新建,避免多个对象存在互相干扰。

二、基本结构

1. 工厂模式的基本结构

工厂模式就是写一个方法,只需调用这个方法,就能拿到你要的对象。
function Tactory(type) {
   
	switch(type) {
   
		case 'type1':
			return new Type1();
		case 'type2':
			return new Type2();
		case 'type3':
			return new Type3();
	}
}

2. 建造者模式的基本结构

把一个复杂类的各个部分,拆分成独立的类,然后再在最终类里组合到一块,最后为最终给出去的类。
// 模块1
function Mode1() {
   

}
// 模块2
function Mode2() {
   

}
// 最终使用的类
function Final() {
   
	this.mode1 = new Mode1();
	this.mode2 = new Mode2();
}

3. 单例模式的基本结构

通过定义一个方法,使用时只允许通过此方法拿到存在内部的同一实例化对象。
let SingLeton = function(name) {
   
	this.name = name;
}
SingLeton.getInstance = function(name) {
   
	if(this.instance) {
   
		return this.instance;
	}
	return this.instance = new SingLeton(name);
}

三、应用示例

1. 工厂模式的示例

// 1.多彩的弹窗
// 需求:项目有一个弹窗需求,弹窗有多种,他们之间存在内容和颜色上的差异。
function infoPop() {
   	//消息
	
}
function confirmPop() {
   		//确认

}
function cancelPop() {
   		//关闭

}
// 创建3个消息弹窗,3个确认,3个取消,分别有不同的颜色
new infoPop('hello1'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值