单例模式
定义
单例模式在开发当中,是将一个项目进行分组编写代码的模式,把描述同一个事物或者对象的属性和方法放在一个封装好的函数(内存空间)当中.
特点
单例模式它限制了类的实例化次数只能一次。在实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例;如果实例已经存在,它会简单返回该对象的引用。
例子
let student1={
name:'zhangsan',
number:'030303',
Name:function()
{
console.dir(this.name)
}
}
let student2={
name:'lisi',
number:'030303',
Name:function()
{
console.dir(this.name)
}
}
console.dir(student1.name)
console.dir(student2.name)
console.log(student1.Name)
console.log(student2.Name)
效果展示:
两两互相不影响
在外部调用内部属性,调用方法为 对象.name
在内部调用内部属性,调用方法为 this.name
优点
单例模式具有分组的作用,常常用于项目开发中进行模块化开发.
缺点
单例模式在创建大量结构相同的对象,需要的工作量大,重复率高,不能够进行批量生成.
工厂模式
定义
将要实现某个功能所要具有的方法和属性封装在一个函数当中,在需要的时候进行实例化或者调用
特点
可以批量生产
例子
function student(name,number) {
let obj=new Object();
obj.name=name;
obj.number=number;
obj.Name=function()
{
console.log(this.name) ;
}
return obj;
}
let student1=student('张三','01')
let student2=student('李四','02')
console.dir(student1.name)
console.dir(student2.name)
console.dir(student1)
console.dir(student2)
效果展示
在这里插入图片描述
优点
不使用new关键字,而通过使用工程化的方法,将所有实例化的代码集中在一个函数当中,防止代码重复,简短代码
缺点
工厂模式创建的对象上级都是Object,无法识别每个对象