Skip to content

Instantly share code, notes, and snippets.

@zD98
Created March 19, 2016 01:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zD98/84f3663d119c3ac91948 to your computer and use it in GitHub Desktop.
Save zD98/84f3663d119c3ac91948 to your computer and use it in GitHub Desktop.

##Command模式 ###总结

将方法调用, 请求, 操作等封装到单一对象, 
从而根据不同的请求对客户进行参数化和传递可供执行的方法调用

###例子 eg.1 (function(){ var CarManager = { requestInfo:function(model, id){}, buyVehicle: function(model, id){}, arrangeViewing: function (model, id) {} }; })()

eg.2
CarManager.execute = function(funcName){
	return CarManager[funcName]&& 
			CarManager[funcName]
				.apply(CarManager,[].slice.call(arguments,1));
}

###分析 1. 通过对象可以直接调用manager中的方法 2. 如果核心API有变动, 所有调用这些方法的对象都需要更改 3. 所以添加了eg.2 CarManager.execute("buyVehicle","Ford Escort", "453543"); 4. 将调用操作的对象与知道如何实现该操作的对象解耦 5. angularJS 的 service 是利用了这种思想吧?减压了controller

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment