`
zhangyaochun
  • 浏览: 2614335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

设计模式探究系列之Interface

阅读更多

1、接口的定义:

 

/*
 * Interface构造器
 * @param {String} name 接口名
 * @param {Array} methods 接口的抽象方法
 * @example var sAction = new Interface('sAction',["method1","method2","method3"]);
*/
var Interface = function(name,methods){
	if(arguments.length !== 2){
		throw new Error("Interface目前只支持两个参数,目前的参数个数:"+arguments.length);
	}
	this.name = name;
	this.methods = [];
	var i,
		len = methods.length;
	for(i=0;i<len;i++){
		if(typeof methods[i] !== 'string'){
			throw new Error("Interface中方法名不合法,应该为string类型");
		}
		this.methods.push(methods[i]);
	}
};
 

2、接口的实现:

 

 

/*
 * 接口的实现
 * @param {function} ImplementsClass 待实现的类
 * @param {Object} Interface1 被实现的Interface,Interface的实例
 * @example var cAction = function(){},
			   aAction = new Interface('aAction',['getA','setA']);
		     implemets(cAction,aAction);
*/
var implemets = function(ImplementsClass,Interface1,Interface2){
			if(arguments.length < 2){
				throw new Error("至少两个参数,而当前的参数个数:"+arguments.length);
			}
			if(typeof arguments[0] !== "function"){
				throw new Error("实现类的类型必须是function类型");
			}
			var i,
				len = arguments.length;
			for(i=1;i<len;i++){
				var interfaceA = arguments[i];
				if(interfaceA.constructor !== Interface){
					throw new Error(interfaceA+"不是Interface的实例,不是接口");
				}
				var j,
					methodLen = interfaceA.methods.length;
				for(j=0;j<methodLen;j++){
					var method = interfaceA.methods[j];
					if(!arguments[0].prototype[method]){
						arguments[0].prototype[method] = function(){};
					}
				}
			}
			
		};
 

 

分享到:
评论

相关推荐

    23个设计模式之一的命令模式-极客学院-课件源码

    命令模式是一种行为设计模式,它将请求封装为一个...同时,掌握如何根据需求选择合适的设计模式是成为优秀软件开发者的关键技能之一。通过极客学院的课件和源码,学习者可以深入探究这一模式,并将其应用于实际开发中。

    手机APP用户体验设计中的一致性探究.pdf

    手机APP用户体验设计中的一致性探究是移动应用开发领域中的重要课题。随着移动互联网的快速发展,各类手机APP已经成为人们日常生活和工作中不可或缺的一部分。用户体验(User Experience, UX)设计作为衡量APP价值的...

    smc91c111.rar_91c111_SMC91C111_interface_smsc

    总的来说,SMC91C111以太网接口的模拟技术是一个涉及硬件接口设计、网络协议理解和软件编程的综合课题。通过深入研究这个主题,我们可以提升在网络通信领域的专业技能,为未来的设计和开发工作打下坚实基础。

    怎么学习Java怎么学习Java

    学习Java不应该仅仅停留在语言层面,还应该关注与之相关的技术和领域,如分布式计算、并行计算等,这会涉及更多的设计模式和编程策略。例如,学习如何利用Java进行分布式系统开发,理解RMI(远程方法调用)和JMS...

    深入核心——VCL架构剖析.part2

    紧密融合OO理念和设计模式,用OO理念重新考量VCL,指出其中优 秀和不妥之处;让您在了解VCL Framework的同时,体验源自顶尖程 序员的OO观。 &lt;br&gt;http://www.dearbook.com.cn/book/12996&lt;br&gt;

    深入核心——VCL架构剖析.part3

    紧密融合OO理念和设计模式,用OO理念重新考量VCL,指出其中优 秀和不妥之处;让您在了解VCL Framework的同时,体验源自顶尖程 序员的OO观。 &lt;br&gt;http://www.dearbook.com.cn/book/12996&lt;br&gt;

    深入核心——VCL架构剖析.part1

    紧密融合OO理念和设计模式,用OO理念重新考量VCL,指出其中优 秀和不妥之处;让您在了解VCL Framework的同时,体验源自顶尖程 序员的OO观。 &lt;br&gt;http://www.dearbook.com.cn/book/12996&lt;br&gt;&lt;br&gt;

    Delphi7渐变色探究

    GradientFill需要一个TRect对象来定义填充区域,以及两个颜色值和一个渐变模式(例如,tfVertical表示从上到下的渐变,tfHorizontal表示从左到右的渐变)。 径向渐变则从一个中心点向外扩散,颜色的变化是基于距离...

    李维新书《Inside VCL》的前两章预读

    紧密融合OO理念和设计模式,用OO理念重新考量VCL,指出其中优秀和不妥之处;让您在了解VCL Framework的同时,体验源自顶尖程序员的OO观。 Delphi已经推出了7个版本,在未来也会持续的推出新的版本,许多人可能也已经...

    Android底层架构研究

    这涉及到理解为什么Android选择特定的技术栈、设计模式以及系统组件,如Binder IPC机制、Zygote进程、HAL(硬件抽象层)等。设计意图的理解有助于我们更好地把握系统架构的核心理念和目标,为后续的分析提供清晰的...

    ARM启动代码的探究

    ### ARM启动代码的探究 #### CMSIS标准简介 在深入探讨ARM启动代码之前,我们首先需要了解CMSIS(Cortex Microcontroller Software Interface Standard)标准。CMSIS是由ARM公司提出的一套标准化软件接口,旨在...

    Sams教你24小时内学会iPhone应用开发_英文_2nd版本[pdf]

    6th)模型-视觉-控制 设计模式 7th)操作文本、键盘和按钮 8th)处理图像、动画和幻灯片 9th)使用高级界面对象 10th)获得用户注意 11th)根据多点触碰获知多选 12th)通过工具栏实现多视觉 13th)利用表格界面显示&导航...

    基于单片机开展探究式实验教学以提高中学生物理核心素养.pdf

    探究式实验教学、单片机技术在教育领域的应用以及物理核心素养的提升是当前教育改革和课程设计中的重要议题。单片机,特别是Arduino系统,因其易用性、开源性和多功能性,在教育中被广泛采用,成为培养学生实践能力...

    多核处理器并行升序设计

    多核处理器并行升序设计是现代计算机科学中一个重要的领域,主要研究如何利用多核处理器的并行性来提高程序执行效率,特别是在大规模数据排序等计算密集型任务中的表现。这一主题涉及到并行计算的基本原理,以及如何...

    STM32单片机FPGA毕设电路原理论文报告基于pic单片机的智能充电器设计

    PIC(Peripheral Interface Controller)是Microchip公司推出的一系列8位、16位和32位单片机。它以其低功耗、高性能及丰富的外设资源而著称,被广泛应用于各种嵌入式控制系统中。 #### 3.2 智能充电器设计要点 - **...

    探究基于FPGA 与单片机的SPI 接口的实现.pdf

    基于FPGA与单片机的SPI接口实现,探讨了利用现场可编程门阵列(FPGA)和单片机设计一个高效率的串行外设接口(SPI)。这一技术在数据通信和传输中具有重要意义,并在现代芯片设计和数字技术发展中扮演关键角色。本文...

    基于Android平台的多模智能终端软件架构探究.pdf

    在多模智能终端中,每个通信模式需要有独立的RIL(Radio Interface Layer)层和Framework层,以实现业务独立和状态控制的清晰性。RIL是Android系统与硬件通信的关键接口,它处理AT命令(Attention Command)来控制...

    人工智人-家居设计-基于ACI的贴片智能卡操作系统研究与实现.pdf

    作者黄一平在其导师唐汉雄的指导下,专注于电路与系统专业,研究方向为计算机网络,针对2007级学生的毕业课题进行了深入研究。 随着智能卡行业的不断发展和技术的进步,越来越多的企业投入到这个领域,市场竞争变得...

    J2EE 拍卖系统

    10. **设计模式**:为了优化代码结构和提高代码复用,开发过程中可能会使用到如工厂模式、单例模式、观察者模式等设计模式。 在学习这个拍卖系统时,初学者可以从以下几个方面入手: - 分析系统架构,理解各组件间...

Global site tag (gtag.js) - Google Analytics