>
> Have anyone got ideas how to implement Singleton pattern in AS3 best?
> Constructor in AS3 can only be public or internal, which is not private
> anyway. ..
>

Well, internal should be enough to implement a Singleton


Just have a public const in the package initialized with an internal class
of the package


Something like that

myTest/MySingleton.as
-----------------------------
package myTest
  {
  public const MySingleton:Singleton = new Singleton();
  }
-----------------------------

myTest/Singleton.as
-----------------------------
Package myTest
  {

  //default to internal, can only be accessed inside the package
  class Singleton
     {

     //be sure to let the constructor internal
     function Singleton()
        {
        //...
        }

     //be sure to have your methods/properties/etc. public
     //so it can be accessed outside of the package
     public function someMethod():String
        {
        //...
        }
     }
  }
-----------------------------

And after well

import myTest.MySingleton;

MySingleton.someMethod()
etc.


I don't see the need of a private constructors at all

And furthermore private constructors imho would cause
more problems than solutions

What people oversee is that we are in ECMAScript,
A Singleton in this context should just be an object
That you can not copy and/or inherit in another prototype
So a public read-only object.

Here having an internal class inside a package prevent
to instanciate this class outside of the package
the public const force to have only one global access point to the
instancied object
So where is the problem ?

Not having private constructors is not a bug,
It's using a private constructor to implement singleton
which is imho a bug/hack from AS2 times.

http://www.mozilla.org/js/language/es4/core/definitions.html

private - Makes the definition visible only in the enclosing class's private
namespace

so following the standard if you got a private constructor
you just CAN NOT instanciate at all the class anywhere else
than inside the class !

private constructors just does not make sens.

zwetan



_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to