为什么单身人士充满了ActionScript文化?

时间:2009-06-15 20:20:48

标签: actionscript-3 actionscript singleton

我最近开始做一些ActionScript / Flex编程,我很......惊讶......我看到的单身人数。他们无处不在!标准库,框架......哎呀,我甚至在今天早上看了一篇博客文章,作者提到他重构了他的一些课程INTO单身人士!

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

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:5)

我认为它来自Flash以前工作的旧方式......在过去的日子里,没有多少重度程序员在做闪存,只有少数,他们被认为是神童(并且理所当然)。大多数人都是从印刷业转移的人......他们认为Flash是webz的新Illustrator。

在过去,Flash开发人员使用易于使用的“ TellTarget ”来获取某个MovieClip,它可以嵌套在MovieClip里面的MovieClip里面......等等。是这样做的...那些人(包括我)从来没有任何软件背景,所以我们生活在这个视觉世界中,Flash正在思考设计师的思维方式。在AS2中,许多人(那些那些不熟悉编码的人)也有很多问题在类中失去“范围”......我记得Proxy-class帮助我们不要在课堂上放松范围。这些天很多头痛。逐渐升级代码智慧的人们从未完全围绕OOP编码的新方式......有些人认为Singleton可以用作一种“全局”。他们总是可以在应用程序的任何地方与这个“全球”进行对话。

我认为就这么简单......

答案 2 :(得分:3)

我不确定它是从哪里来的,Flex充满了它们,正如你所提到的,我们在很多其他地方看到它们。它们起初看起来确实很吸引人,但它们几乎总会在未来的某个地方引起头痛。

每个人都应该阅读MiškoHevery的博客(start with this one)他反对使用它们做出了很好的论据。

Singleton确实有使用,例如Logger,但它们已被过度使用。

@skaffman关于性能优势,在应用程序中使用单个实例而不实现Singleton模式是完全合理的。

答案 3 :(得分:3)

对于已经在这里提出的优点,我想补充一点,Flash项目的高速运行以及大多数不需要维护的事实,鼓励人们获得事情尽快完成,而Singletons是实现这一目标的好方法,你可以使用getInstance而不是传递引用,依赖注入等。实际上,事实是你只会有一个实例你的许多课程,尽管理论上你可能想要不止一个。

答案 4 :(得分:-1)

我已经改变了我在这方面的立场。

在actionscript3中使用对象很有助于增加模块化。

我推测,像我一样,对于大多数初学的Flash开发人员来说,OOP的好处很有用,而且很难得到。

我认为这有两个原因。

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

2。)过程式编程类似于工作流程,它将您锁定在某个工作流程中,但是对于开始让程序员更容易理解

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

----------------原始回复----------------

我是喜欢(和使用)单身人士的AS社区的一员。

我对编程比较陌生(3年PHP / MySQL / Javascript / Actionscript proffesionally)。

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

模块化编程,根据我的理解,是OOP的重要组成部分,是有效程序设计中非常重要的一部分。

任何一次使用的东西都可以移动到单独的功能中。共享相似功能或属性的操作组可以分成它们的公共部分,然后不同的部分与它们的实例无关。

但是,我发现使用一系列相互关联的模块

更有效

在我看来,大多数继承基础OOP只是热空气。相互交互的模块是一种更有效的方式来模拟程序的活动,这15个版本基本上是相同的。

我制作了一个核心并制作模块来接入核心,但永远不要让子对象成为核心的扩展。我认为扩展课程很麻烦,并且通过消除必要的灵活性而使开发停滞不前。

我经常阅读的一个原因(并且在基于继承的OOP背后听到)是它增加了可读性和可维护性。对我而言,所有这些意味着程序员宁愿使用对他们来说容易的系统,而不是对程序有效的系统。

我尽可能地编写尽可能干净且易于理解的代码,但只能达到并且不会超过它抑制程序的创造性和灵活性的程度。

我是OOP,但我更喜欢基于单例,原型或模块的方法。