My preferred singleton/pseudo-private-ctor pattern is to use a static function facade:
 
package {
public class Manager
{
  public static function x()
  {
    if (inner == null) inner = new ManagerImpl();
    inner.x();
  }
  private static var inner:ManagerImpl = null;
}
}
 
class ManagerImpl()
{
  public function x() {..}
}
 
If the facade gets too porky, you can use interfaces; make a public IManager interface in its own file, and have a "public static function Manager.getManager():IManager" function.  That way you can only get the "gateway" class, and file-external code can't create a ManagerImpl.
 
-rg
 
 


From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Johannes Nel
Sent: Friday, February 10, 2006 7:16 AM
To: [email protected]
Subject: Re: [flexcoders] AS3 class constructors can't be private? Abstract classes?

so even if i create a private class that is only accecible in that package (and then on package level declare a accesor for it) the only way i can be certain that class will only be created once is by having nothing else in that package. this does not seem right.

On 2/10/06, Matt Chotin <[EMAIL PROTECTED]> wrote:

You have to simulate private constructors by having the constructor take a class that is inaccessible to other classes (namely putting that class in the same file as the singleton outside of the package block).  Unfortunately I believe the rule is that the constructor of the class has to have the same visibility as the class itself.  So public classes need public constructors, internal classes get internal constructors, etc.

 

Matt

 


From: [email protected] [mailto:[email protected]] On Behalf Of Johannes Nel
Sent: Thursday, February 09, 2006 4:51 PM
To: [email protected]
Subject: Re: [flexcoders] AS3 class constructors can't be private? Abstract classes?

 

abstract classes i am not expecting, private constructers i certainly hope for

On 2/9/06, Carlos Rovira <[EMAIL PROTECTED] > wrote:

Hi,

I was trying to migrate some classes from AS2 to AS3 and notice that can't mark the class constructor as private. Is that correct or there's a workaround? if not have plans to implement private constructors.

and abstract classes?

Thanks in advance.

--
::| Carlos Rovira
::| http://www.carlosrovira.com

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com



SPONSORED LINKS

Web site design development

Computer software development

Software design and development

Macromedia flex

Software development best practice

 

 


YAHOO! GROUPS LINKS

 

 





--
j:pn



--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




SPONSORED LINKS
Web site design development Computer software development Software design and development
Macromedia flex Software development best practice


YAHOO! GROUPS LINKS






--
j:pn


--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




SPONSORED LINKS
Web site design development Computer software development Software design and development
Macromedia flex Software development best practice


YAHOO! GROUPS LINKS




Reply via email to