Patrón de diseño de JavaScript (1) -modo singleton

  La definición de modo singleton es garantizar que una "clase" tenga solo una instancia y proporcionar un punto de acceso global para acceder a ella. 

  La clase del modo singleton es una variable que solo necesita crearse una vez (esto no significa que no se pueda cambiar una vez creada), por lo que necesitamos un método general para determinar si se ha creado una clase, simplemente pase un Bloquear para determinar si se ha creado esta clase. Por lo tanto, primero presentamos un método general de creación de patrones singleton, el código es el siguiente:

<script type="text/javascript">
	// 我们把业务逻辑封装在fn里通过变量的形式传入
	function createSingle(fn){
		let lock = null
		// 我们用闭包把lock保存下来
		return function(){
			return lock || lock = fn.apply(this,arguments)
		}
	}
</script>

  Cuando necesitamos un objeto único, escribimos una función para crear el objeto nosotros mismos y lo entregamos al modo singleton.

var createObj = function(a,b){
	return {
		a:a,
		b:b
	}
}
let singleObj = createSingle(createObj) //生成单例模式
console.log(singleObj('aaa','bbb')) //{a:'aaa',b:'bbb'}
console.log(singleObj('ccc','ddd')) //{a:'aaa',b:'bbb'}

  A menudo usamos el modo singleton en JavaScript, pero no lo notamos. Por ejemplo, si crea una variable a, y luego no vuelve a crear una variable en el código subyacente, podemos pensar en a como un modo singleton, pero No lo diremos así, así que cuando digo que aprender patrones de diseño es darle un nombre a tu código, de hecho no hay un uso suave.

Supongo que te gusta

Origin blog.csdn.net/dkr380205984/article/details/108601791
Recomendado
Clasificación