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








Jack <Jackoz530 gmail.com>