Why? The answer has to do with Adobe's adherence to the ECMAScript
working standard that they were basing AS3 on. At the time (before the
ECMAScript 4 process fell apart), the body determined that private
constructors were not needed, so adobe built this restriction into AS3.
Private constructors aren't useless, particularly for single pattern.
With a private constructor, you can instantiate the class from within
itself, assign it to a private class (static) property, and then expose
the single instance through a public class (static) getter function.
You'd be protected from every other way to instantiate the class. There
are ways to do singleton without it, they are just more of a pain. Like
taking an instance of a key class in the constructor, where the Key
class is defined in the local class file scope chain. Since nothing else
will have access to that Key class except your singleton class, you can
use that as a nice locking mechanism.
I can't think of any use for private class off the top of my head, but
that doesn't mean there isn't one.
Kevin N.
On 5/21/13 2:39 AM, Cor wrote:
Karl,
One: why doesn't ActionScript 3 allow private classes?
A: They are useless because they couldn't be used, I guess.
You can use a Class within a public class which then would be private to
that class it self.
Two: why is writing "public class" a best practice if "private class" does
not exist?
Look a the variations with static etc.
HTH
Cor
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders