On Mon, Nov 16, 2015 at 5:40 AM, OmPrakash Muppirala <bigosma...@gmail.com> wrote:
> Nope, you can still call new Singleton(null) and the compiler won't say > anything :-) > The 'enforcer' is required because of this loophole. > > Yeah, you're right, to early in the morning.. :) > Thanks, > Om > > On Mon, Nov 16, 2015 at 2:36 AM, Michael Schmalle < > teotigraphix...@gmail.com > > wrote: > > > On Mon, Nov 16, 2015 at 4:14 AM, OmPrakash Muppirala < > bigosma...@gmail.com > > > > > wrote: > > > > > Purely pedantic, but the code does not do anything to 'enforce' the > > > singleton-ness of the class. > > > > > > > The compiler won't even let you compile this code, so the != is just > sauce > > that never gets eaten. Since you have to pass an instance of > > SingletonEnforcer, it's private and the compiler will bitch. > > > > Mike. > > > > > > > > > > It should actually be: > > > public function Singleton(e:SingletonEnforcer){ > > > if(e != null) > > > { > > > trace("new instance of singleton created"); > > > } > > > } > > > > > > On Mon, Nov 16, 2015 at 12:54 AM, yishayw <yishayj...@hotmail.com> > > wrote: > > > > > > > Actually the comment above 'class SingletonEnforcer' explains it. > > > > > > > > package{ > > > > public class Singleton{ > > > > private static var _instance:Singleton=null; > > > > public function Singleton(e:SingletonEnforcer){ > > > > trace("new instance of singleton created"); > > > > } > > > > public static function getInstance():Singleton{ > > > > if(_instance==null){ > > > > _instance=new Singleton(new SingletonEnforcer()); > > > > } > > > > return _instance; > > > > } > > > > } > > > > } > > > > //I’m outside the package so I can only be accessed internally > > > > class SingletonEnforcer{ > > > > //nothing else required here > > > > } > > > > > > > > > > > > > > > > -- > > > > View this message in context: > > > > > > > > > > http://apache-flex-development.2333347.n4.nabble.com/FlexJS-FalconJX-Internal-Classes-tp50091p50102.html > > > > Sent from the Apache Flex Development mailing list archive at > > Nabble.com. > > > > > > > > > >