⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interface.js

📁 JS设计模式源代码
💻 JS
字号:
// Constructor.var Interface = function(name, methods) {    if(arguments.length != 2) {        throw new Error("Interface constructor called with " + arguments.length          + "arguments, but expected exactly 2.");    }        this.name = name;    this.methods = [];    for(var i = 0, len = methods.length; i < len; i++) {        if(typeof methods[i] !== 'string') {            throw new Error("Interface constructor expects method names to be "               + "passed in as a string.");        }        this.methods.push(methods[i]);            }    };    // Static class method.Interface.ensureImplements = function(object) {    if(arguments.length < 2) {        throw new Error("Function Interface.ensureImplements called with " +           arguments.length  + "arguments, but expected at least 2.");    }    for(var i = 1, len = arguments.length; i < len; i++) {        var interface = arguments[i];        if(interface.constructor !== Interface) {            throw new Error("Function Interface.ensureImplements expects arguments "                 + "two and above to be instances of Interface.");        }                for(var j = 0, methodsLen = interface.methods.length; j < methodsLen; j++) {            var method = interface.methods[j];            if(!object[method] || typeof object[method] !== 'function') {                throw new Error("Function Interface.ensureImplements: object "                   + "does not implement the " + interface.name                   + " interface. Method " + method + " was not found.");            }        }    } };/*// Example usage: // Interfaces.var Composite = new Interface('Composite', ['add', 'remove', 'getChild']);var FormItem = new Interface('FormItem', ['save']);// CompositeForm classvar CompositeForm = function(id, method, action) { // implements Composite, FormItem	...};...function addForm(formInstance) {    Interface.ensureImplements(formInstance, Composite, FormItem);    // This function will throw an error if a required method is not implemented, halting execution.    // All code beneath this line will be executed only if the checks pass.    ...}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -