![]() |
1
5
是的,这是实用程序库的两个主要选项。实际上,我们将这两种方法都用于通用实用程序函数。对于我们认为应该内置的一组非常小的函数(如map()),我们为每个文件放置一个函数,这样我们就可以直接使用该函数。 对于更模糊/专用的实用程序函数,我们不希望污染全局命名空间,因此我们将它们设置为实用程序类上的静态函数。这样,我们可以确定当有人引用arrayUtils.intersect()时,我们知道什么library intersect()来自什么,以及它的大致用途(它与两个数组相交)。 我建议尽可能采用后一种路线,除非您具有a)非常频繁使用的功能和b)一目了然的功能。 |
![]() |
2
3
毕竟我遇到了一些其他的选择,我想在这里分享。 备选方案1-使用继承这可能是一个显而易见的答案,但也是有限的。您可以将静态方法放入父类中,继承它们以将它们放入子类中。这只适用于类。另外,由于actionscript是单继承的,所以只能继承一次。 备选方案2-对方法进行别名您仍然可以将实用程序函数作为挂起Util类的静态方法编写,但是您可以对它们进行别名,以便使用较短的名称访问它们,例如:
现在你可以打电话了
而不是冗长的
您可以在类范围和函数范围内执行此操作,但不能在包范围内执行此操作,因为显然,在包内只能有一个可见属性。如果在类作用域中执行此操作,则需要确保它不会与其他类属性名称冲突。 备选方案3-使用包括如上所述 this flexonrails blog post 你可以使用 包括 以模拟ActionScript中的混合。安 include 与导入不同的是,它所做的只是复制包含的整个文件,并将其粘贴到包含该文件的位置。因此,它完全没有处理名称空间问题,您不能像处理导入那样在后面引用它的完整路径名,如果您有冲突的名称,您可以自己处理这个问题。与导入不同的是,它创建同一代码的不同副本。但你是什么 可以 这样做是将任意数量的函数放在一个文件中,并将它们包含到另一个文件中的类或函数范围中。前任:
包括:
|
![]() |
3
0
@匿名 OOP只是将类似的函数或属性合并到可以导入和使用的对象中的方法。你的代码只是一种组织形式,所有的代码最终都在处理器中按程序执行,OOP只是源代码的组织。他在这里的所作所为也许不像你从一本书中学到的那样糟糕,但它最终做了完全相同的事情,应该受到同样的尊重。 任何真正了解OOP的人都不会幼稚到认为OOP的已批准和文档化形式是实现代码定向的唯一可能方法。 编辑:这应该是一个评论回应安尼姆的粗鲁评论,告诉他学习OOP。但我想我打错了:) |