digitalmars.D.learn - Singletons importing each other?
- Jack (40/40) Jul 24 2016 Is there a way for singletons that import each other, use each
- lqjglkqjsg (5/45) Jul 24 2016 - You can use a 3rd module that imports the two that "cycle".
- Jack (2/8) Jul 25 2016 Oh ok. Thanks for the ideas. Cheers!
Is there a way for singletons that import each other, use each other's functions? Like i.e: ------ module sing1; import sing2; final class Singleton_1{ static this{ instance = new Singleton_1(); } static Singleton_1 getInstance(){ return instance; } void foo(){ writeln("Sample"); } void bar2(){ Singleton_2.getInstance().bar(); } private: static Singleton_1 instance; } ------- module sing2; import sing1; final class Singleton_2{ static this(){ instance = new Singleton_2(); } static Singleton_2 getInstance(){ return instance; } void bar(){ Singleton_1.getInstance().foo(); } private: static Singleton_2 instance; } without triggering the "cycle between modules with constructors/destructors"?
Jul 24 2016
On Sunday, 24 July 2016 at 15:07:20 UTC, Jack wrote:Is there a way for singletons that import each other, use each other's functions? Like i.e: ------ module sing1; import sing2; final class Singleton_1{ static this{ instance = new Singleton_1(); } static Singleton_1 getInstance(){ return instance; } void foo(){ writeln("Sample"); } void bar2(){ Singleton_2.getInstance().bar(); } private: static Singleton_1 instance; } ------- module sing2; import sing1; final class Singleton_2{ static this(){ instance = new Singleton_2(); } static Singleton_2 getInstance(){ return instance; } void bar(){ Singleton_1.getInstance().foo(); } private: static Singleton_2 instance; } without triggering the "cycle between modules with constructors/destructors"?- You can use a 3rd module that imports the two that "cycle". - You can use another singleton implementation that doesn't rely on a static this. e.g a kind of "lazy factory" that control the uniquness.
Jul 24 2016
On Sunday, 24 July 2016 at 15:38:13 UTC, lqjglkqjsg wrote:On Sunday, 24 July 2016 at 15:07:20 UTC, Jack wrote:Oh ok. Thanks for the ideas. Cheers![...]- You can use a 3rd module that imports the two that "cycle". - You can use another singleton implementation that doesn't rely on a static this. e.g a kind of "lazy factory" that control the uniquness.
Jul 25 2016