zoukankan      html  css  js  c++  java
  • javascript 设计模式-----外观模式

    外观模式是为外部提供简单的接口一种方式,由于模块内部方法庞杂,不能一一对外公开,那么我们需要一个统一的和简单的对外方法(API)来调用这些内在的函数。这时候我们可以用到外观模式:

    var module = (function(){
    	var name = 'bobi';
    	var _p = function() {//内部方法,不公开
    		console.log('your name is' + name);
    	}
    	var _q = function() {//内部方法,不公开
    		console.log('my name is' + name);
    	}
    	var _c = function(m) {//内部方法,不暴露
    		name = m
    	}
    
    	return{
    		f :	function(m) {//公开的方法
    			_c(m);//调用私有方法
    			 if(name == 'bobi') {
    			 	_p()
    			 }else{
    			 	_q();
    			 }
    		}	
    	} 
    })();
    

    在module中,所有的私有方法都不需要公开,我们只是暴露了一个f方法,作为桥接的接口,f里面会执行调用各个内部方法。我们不需要关系_q,_p的执行内容,只需要关心f这个公开的方法。在这里,f就是作为一个简单的api来访问这些方法的。

    外观模式也有一些缺点:那就是层级访问带来的性能问题,也就是说本来可以一层执行的函数,现在需要第二层来实现,所以在考虑使用此方法的时候我们要考虑到这样做的好处和付出的代价是否合理。

  • 相关阅读:
    SequenceInputStream
    BufferedReader
    FileWriter
    FileReader
    BufferedOutputStream
    javascript/html 禁止图片缓存
    localStorage util
    FormData上传文件 带进度条
    javascript 一些函数的实现 Function.prototype.bind, Array.prototype.map
    替代jquery中的几个函数
  • 原文地址:https://www.cnblogs.com/constantince/p/4329997.html
Copyright © 2011-2022 走看看