博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript之原生接口类设计
阅读量:5301 次
发布时间:2019-06-14

本文共 1194 字,大约阅读时间需要 3 分钟。

//接口类
        var Interface =  function(name , methods){
            if(arguments.length!=2){
                throw new Error('Arguments length is not qualified!');
            }
 
            this.name = name;//接口名称
            this.methods = []; //空数组存放方法名
 
            for (var i = 0 , length = arguments.length; i < length; i++) {
                if(typeof(methods[i]) != 'string'){
                    throw new Error("Method name\'s type must be 'string'!");
                }
                this.methods.push(methods[i]);
            }
 
            return this;
        };
 

        //公有共享方法:检测实例的接口是否均实现了 

        Interface.ensureImplements = function(object){//类对象实例
                if(arguments.length<2){
                    throw new Error("This instance doesn't implements any one interface!");
                }
 
                //获得接口对象实例
                for(var i = 1 , length = arguments.length; i < length ; i++){
                    var instanceInterface = arguments[i];
 
                    if(instanceInterface.constructor !== Interface){
                        throw new Error("This instanceInterface is not interface!");
                    }
 
                    for(var j = 0 ; j < instanceInterface.methods.length; j++){
                        var methodName = instanceInterface.methods[j];
                        if(!object[methodName] || typeof(object[methodName]) !== 'function'){
                            throw new Error("This instanceInterface doesn't exist the instanceInterface's method!");
                        }
                    }
                }
        }
 
        //测试接口对象的实例
        var CarInterface = new Interface('CarInterface',['start','run']);

转载于:https://www.cnblogs.com/johnnyzen/p/7194230.html

你可能感兴趣的文章
Redis 发布订阅
查看>>
Redis 事务
查看>>
中国创新教育交流会杂感
查看>>
逍遥笔记
查看>>
JSON 命令行工具
查看>>
博士生传给硕士生的经验
查看>>
ubuntu 查看软件包中的内容 (已经安装)
查看>>
iperf 一个测试网络吞吐的工具
查看>>
IOR and mdtest - measure parallel file system I/O performance at both the POSIX and MPI-IO level.
查看>>
文件系统测试工具整理
查看>>
好用的性能检测工具 - Glances
查看>>
tcp滑动窗口和读写缓冲区
查看>>
GO 使用静态链接库编译 生成可执行文件 使用第三方 .a 文件,无源码构造
查看>>
ssh 使用指定网卡 连接特定网络
查看>>
鸿蒙操作系统发布会 分析 记录
查看>>
浅谈python 中正则的一些函数
查看>>
app生命周期之即将关闭
查看>>
MPU6050
查看>>
Asp.Net 加载不同项目程序集
查看>>
[Luogu3112] [USACO14DEC]后卫马克Guard Mark
查看>>