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个小时后才开始炒他的菜,只要订单还在,厨师就不会忘记。客人也可以很方便地打 电话来撤销订单。另外如果有太多的客人点餐,厨房可以按照订单的顺序排队炒菜。 这些记录着订餐信息的清单,便是命令模式中的命令对象。

  • 相关阅读:
    poj1015
    poj1101
    poj1081
    poj1020
    深入浅出MFC文档视图架构之实例剖析 Love3的日志 网易博客
    简单问题:LPARAM 是一个long(32bit),双字,怎么分别得到高位字和低位字的值。
    VC MFC SDI/MDI框架各部分指针获取方式
    msado15.tlh(228) : error C2011: “LockTypeEnum”: “enum”类型重定义
    C#数据库方面好书
    excel2007密码破解
  • 原文地址:https://www.cnblogs.com/hlere/p/6746287.html
Copyright © 2011-2022 走看看