【发布时间】:2010-09-30 14:02:43
【问题描述】:
我正在为我当前的项目使用 Cairngorm MVC 架构。
我有几个命令使用相同类型的返回值的函数。我想把这个函数放在一个地方,并重用它,而不是在每个命令中复制代码。最好的方法是什么?
【问题讨论】:
标签: apache-flex model-view-controller actionscript code-reuse cairngorm
我正在为我当前的项目使用 Cairngorm MVC 架构。
我有几个命令使用相同类型的返回值的函数。我想把这个函数放在一个地方,并重用它,而不是在每个命令中复制代码。最好的方法是什么?
【问题讨论】:
标签: apache-flex model-view-controller actionscript code-reuse cairngorm
在您的 Cairngorm 类之一中创建静态类或静态方法。
class MyStatic
{
public static function myFunction(value:String):String
{
return "Returning " + value;
}
}
然后你想在哪里使用你的功能:
import MyStatic;
var str:String = MyStatic.myFunction("test");
另一种选择是创建一个顶级函数(a la “trace”)。看看我写的这篇文章here。
【讨论】:
您有很多选择——在您的模型或控制器中公开定义的函数,例如:
var mySharedFunction:Function = function():void
{
trace("foo");
}
... 新类或现有类的静态方法等。不过,最佳实践可能取决于函数需要做什么。能详细点吗?
【讨论】:
为您的命令创建一个抽象基类并将您的函数添加到受保护的范围内。如果您需要在其他任何地方重用它,请将其重构为实用程序类的公共静态方法。
【讨论】: