代码之家  ›  专栏  ›  技术社区  ›  user70192

在JavaScript中实现接口

  •  1
  • user70192  · 技术社区  · 9 年前

    我在学习JavaScript。我的背景传统上是Java和C#。在这些环境中,我可以使用接口。很多时候,我会有这样的模式:

    var implementers = GetForInterface<ISomeInterface>();
    
    foreach (var implementer in implementers)
      {
      implementer.SomeMethod();
      }
    

    我的问题是,我如何在JavaScript中做类似的事情?我似乎无法理解的主要问题是 GetForInterface 部分我不确定这种设计模式叫什么。

    非常感谢。

    2 回复  |  直到 8 年前
        1
  •  3
  •   jony89    9 年前

    Javascript中没有接口,

    您所讨论的设计模式是服务定位器,但通常这不是javascript的方式。

    您可以使用一些库来执行此操作: service-locator 或者用类和继承实现它。

    一个简单的例子是保存一个继承自同一类的实例数组,您将能够对它们进行循环(并根据需要为所有实例激活相同的方法)

        2
  •  0
  •   Paul Sweatte    7 年前

    我见过的最简单的方法是使用存根并根据需要重写它们。例如:

         function getter(obj){}
    
         function objChecker()
           {
           try
             {
             /* Check argument length and constructor type */
             if (getter.length === 1 && getter.constructor === Function)
               {
               console.log("Correct implementation");
               return true;
               }
             else
               {
               console.log("Wrong implementation");
               return false;
               }
             }
           catch(e)
             {
             return NaN;
             }
           finally
             {
             console.log(JSON.stringify(getter))
             }
           }
     
     getter = getter;
     objChecker();
     getter = [];
     objChecker();
     getter = {};
     objChecker();
     getter = RegExp;
     objChecker();
     getter = Function;
     objChecker();

    工具书类