zoukankan      html  css  js  c++  java
  • javascript设计模式-(三)

    迭代器模式

    迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象 的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即 使不关心对象的内部构造,也可以按顺序访问其中的每个元素

    迭代器的应用-1
    	//未使用迭代器模式
    
    	var getUploadObj = function() {
    		try {
    			return new ActiveXObject("TXFTNActiveX.FTNUpload"); // IE 上传控件
    		} catch (e) {
    			if (supportFlash()) { // supportFlash 函数未提供
    				var str = '<object type="application/x-shockwave-flash"></object>';
    				return $(str).appendTo($('body'));
    			} else {
    				var str = '<input name="file" type="file"/>'; // 表单上传
    				return $(str).appendTo($('body'));
    			}
    		}
    	};
    
    	//使用迭代器模式
    
    	var getActiveUploadObj = function() {
    		try {
    			return new ActiveXObject("TXFTNActiveX.FTNUpload"); // IE 上传控件
    		} catch (e) {
    			return false;
    		}
    	};
    
    	var getFlashUploadObj = function() {
    		if (supportFlash()) { // supportFlash 函数未提供
    			var str = '<object type="application/x-shockwave-flash"></object>';
    			return $(str).appendTo($('body'));
    		}
    		return false;
    	};
    
    	var getFormUpladObj = function() {
    		var str ='<input name="file" type="file" class="ui-file"/>'; // 表单上传
    		return $(str).appendTo($('body'));
    	};
    
    	var iteratorUploadObj = function() {
    		for (var i = 0, fn; fn = arguments[i++];) {
    			var uploadObj = fn();
    			if (uploadObj !== false) {
    				return uploadObj;
    			}
    		}
    	};
    
    	var uploadObj = iteratorUploadObj(getActiveUploadObj, getFlashUploadObj, getFormUpladObj);`
    	
    

    命令模式

    假设有一个快餐店,而我是该餐厅的点餐服务员,那么我一天的工作应该是这样的:当某位 客人点餐或者打来订餐电话后,我会把他的需求都写在清单上,然后交给厨房,客人不用关心是 哪些厨师帮他炒菜。我们餐厅还可以满足客人需要的定时服务,比如客人可能当前正在回家的路 上,要求 1个小时后才开始炒他的菜,只要订单还在,厨师就不会忘记。客人也可以很方便地打 电话来撤销订单。另外如果有太多的客人点餐,厨房可以按照订单的顺序排队炒菜。 这些记录着订餐信息的清单,便是命令模式中的命令对象。

  • 相关阅读:
    Storm中的定时任务
    Storm的acker确认机制
    ORACLE数据库表解锁record is locked by another user
    Java生成某段时间内的随机时间
    Linux中断概述
    Linux内核同步:RCU
    Linux内核同步:自旋锁
    Linux软中断、tasklet和工作队列
    Linux信号机制
    缺页异常处理
  • 原文地址:https://www.cnblogs.com/hlere/p/6746287.html
Copyright © 2011-2022 走看看