Actionscript 3 为什么单身汉在ActionScript文化中无处不在?

Actionscript 3 为什么单身汉在ActionScript文化中无处不在?,actionscript-3,actionscript,singleton,Actionscript 3,Actionscript,Singleton,我最近开始做一些ActionScript/Flex编程,我。。。惊讶根据我看到的单身人数。他们到处都是!标准库、框架。。。见鬼,我今天早上甚至读了一篇博客文章,作者提到他将一些类重构成了单例 为什么AS社区如此喜欢单身,有什么合理的解释吗?不仅仅是AS社区,这是软件设计的一个普遍趋势。面向组件的编程鼓励服务对象的初始设置和连接,然后使用瞬态消息进行协作。单身是这个想法的自然组成部分 此外,单例还可以减少创建成本高昂的对象对运行时的影响。我不太确定这些都是从哪里来的,Flex中充满了单例,正如您所

我最近开始做一些ActionScript/Flex编程,我。。。惊讶根据我看到的单身人数。他们到处都是!标准库、框架。。。见鬼,我今天早上甚至读了一篇博客文章,作者提到他将一些类重构成了单例


为什么AS社区如此喜欢单身,有什么合理的解释吗?

不仅仅是AS社区,这是软件设计的一个普遍趋势。面向组件的编程鼓励服务对象的初始设置和连接,然后使用瞬态消息进行协作。单身是这个想法的自然组成部分


此外,单例还可以减少创建成本高昂的对象对运行时的影响。

我不太确定这些都是从哪里来的,Flex中充满了单例,正如您所提到的,我们在很多其他地方都可以看到它们。它们一开始看起来确实很吸引人,但它们几乎总是让人头疼

每个人都应该读米什科·海弗利的博客()他提出了一些反对使用它们的极好的理由

Singleton's确实有一些用途,例如一个记录器,但它们已经被过度使用了


@skaffman就性能优势而言,在应用程序中使用单一对象实例而不实现单一模式是完全合理的。

我认为它来自于Flash过去的工作方式。。。在过去,做flash的程序员并不多,只有少数,他们被认为是天才(这是理所当然的)。大多数人都是从印刷业转业过来的。。。他们认为Flash是webz的新插图画家

在过去,flash开发人员使用易于使用的“TellTarget”来获取某个MovieClip,该MovieClip可以嵌套在MovieClip中的MovieClip中,也可以嵌套在MovieClip中的MovieClip中。。。等等,这只是它的工作方式。。。这些人(包括我)从来没有任何软件背景,所以我们生活在这个视觉世界中,Flash的思维方式与设计师的思维方式相同。在AS2中,许多人(那些不擅长编码的人和那些不擅长编码的人)在丢失类内的“作用域”时也有很多问题。。。我记得代理类帮助我们避免了类中的作用域丢失。这些天头痛得厉害。那些逐渐提升了代码智慧的人从来没有完全沉浸在OOP中新的编码方式上。。。他们中的一些人认为独生子女可以被用作一种“全球性的”。他们可以随时从应用程序中的任何位置与此“全局”通信


我想就这么简单…

我在这方面改变了立场

在actionscript3 haas中使用对象很好地提高了调制效率

我想,像我一样,OOP的好处对于大多数刚起步的flash开发人员来说都是很难获得的

我认为有两个原因

1.)谈论基础知识很无聊,所以大多数信息都过于复杂。OOP实际上只是将一个系统分解为可理解的、可重用的部分

2.)程序化编程与工作流类似,它将您锁定在特定的工作流程中,但对于初学者来说,这更容易理解

3.)很多flash都是关于管理flash小部件的状态的,因此在一个中心位置管理信息在某种程度上是有意义的

----------------原始响应----------------

作为喜欢(和使用)单身的社区,我是其中的一员

我对编程比较陌生(3年的PHP/MySQL/Javascript/Actionscript专业经验)

我认为模块化编程和经典的基于类的继承OOP之间有着明显的区别

模块化编程,据我所知是OOP的一大部分,是有效程序设计的一个极其重要的部分

任何多次使用的东西都可以移动到单独的函数中。共享相似功能或属性的操作组可以划分为它们的公共部分,然后将不同的部分统一到它们的实例中

但是,我发现使用一组相互关联的模块来实现这一点更为有效

在我看来,大多数基于继承的OOP只是空谈。模块之间的交互是对一个程序的活动进行建模的一种更有效的方法,该程序包含15个基本相同的版本

我创建了一个核心,并将模块与核心进行匹配,但子对象永远不会是核心的扩展。我认为扩展一个类是很麻烦的,并且会因为失去必要的灵活性而阻碍开发

我经常读到(也听说基于继承的OOP背后)的原因之一是它增加了可读性和可维护性。对我来说,这一切意味着程序员宁愿使用对他们来说简单的系统,也不愿使用对程序有效的系统

我完全支持编写尽可能干净、易懂的代码,但只支持编写到限制程序创造性和灵活性的程度,而不是超过这个程度


我支持OOP,但我更喜欢基于单例、原型或模块的aproach。

除了这里已经提到的优秀观点外,我还要补充一点,Flash项目组合的速度很快,而且大多数项目都不需要维护,这鼓励人们尽快完成任务,而单例是实现这一点的好方法,您可以使用getInstance,而不是传递引用、依赖注入等。实际上,您的许多类只有一个实例,即使在理论上你可能想要不止一个。

我觉得这很讽刺,因为对我来说,广泛使用单例就像使用函数式编程语言。这两者之间没有千篇一律的界限