首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态主类- AS3

静态主类- AS3
EN

Stack Overflow用户
提问于 2012-11-21 23:40:22
回答 2查看 1.3K关注 0票数 5

有没有办法让主类--基于主.fla的类--成为静态的?所以我们可以像在java中一样使用它,能够从其他类中引用它,因为我必须将main本身的实例作为参数传递给一个类,否则我将释放引用。我试图添加静态前缀,但似乎as3不允许。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-21 23:43:33

AS3中没有静态类的概念。

您可以使用单例模式来公开主类的唯一实例:

代码语言:javascript
复制
public class Main extends Sprite {

    public static var instance:Main;

    public function Main() {
         instance = this;
    }

...or只是将其他属性/方法标记为static,尽管它变得更难管理。

我需要指出的是,使用static有时会导致糟糕的代码设计(相反,您可以通过构造函数将Main的实例传递给需要它的类)。

票数 8
EN

Stack Overflow用户

发布于 2012-11-22 01:21:14

这不会是流行的答案,我知道...使用静态属性来公开实例是一个非常糟糕的想法。Singleton反模式非常流行,但不应该如此,它会导致糟糕的实践,并不必要地将类彼此联系在一起。

你需要问问自己,你是否真的需要在其他类中引用主类?AS3有一个事件系统,可以为您提供所需的所有松散耦合。如果显示对象需要与主类实例通信,可以通过显示列表发送事件来实现。

依赖项管理的问题最好由依赖项注入框架来处理(其中许多框架都有一些集中的消息传递系统,这远远超过了显示列表上的事件)。如果您觉得有任何流行的(PureMVC、RobotLegs等)是过度杀伤力,你可以很容易地自己创建一个(简单而有限的)。

有很多工具和模式永远不需要依赖单例或静态实例访问器,因为它们会让您的生活苦不堪言,让您的代码变得脆弱、僵化、不可测试、不可靠和有buggy。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13496718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档