js设计模式之享元模式
Posted rrrjc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js设计模式之享元模式相关的知识,希望对你有一定的参考价值。
享元模式(具有共性的实例对象,归并到一个类别中,避免重复创建相同实例对象)
var candidateNum = 10 // 考生数量
var examCarNum = 0 // 驾考车的数量
/* 驾考车构造函数 */
function ExamCar(carType)
examCarNum++
this.carId = examCarNum
this.carType = carType ? ‘手动档‘ : ‘自动档‘
ExamCar.prototype.examine = function (candidateId)
console.log(‘考生- ‘ + candidateId + ‘ 在‘ + this.carType + ‘驾考车- ‘ + this.carId + ‘ 上考试‘)
var manualExamCar = new ExamCar(true)
var autoExamCar = new ExamCar(false)
for (var candidateId = 1; candidateId <= candidateNum; candidateId++)
var examCar = candidateId % 2 ? manualExamCar : autoExamCar
examCar.examine(candidateId)
console.log(‘驾考车总数 - ‘ + examCarNum)
// 输出: 驾考车总数 - 2
非享元模式
var studentNum = 10 // 考生数量
var carNum = 0 // 驾考车的数量
/* 驾考车构造函数 */
function ExamCar(carType)
carNum++
this.carId = carNum
this.carType = carType ? ‘手动档‘ : ‘自动档‘
ExamCar.prototype.examine = function (studentId)
console.log(‘考生- ‘ + studentId + ‘ 在‘ + this.carType + ‘驾考车- ‘ + this.carId + ‘ 上考试‘)
// var manualExamCar = new ExamCar(true)
// var autoExamCar = new ExamCar(false)
for (var studentId = 1; studentId <= studentNum; studentId++)
var examCar = new ExamCar(studentId % 2)
examCar.examine(studentId)
console.log(‘驾考车总数 - ‘ + carNum)
// 输出: 驾考车总数 - 10
以上是关于js设计模式之享元模式的主要内容,如果未能解决你的问题,请参考以下文章