Nesting classes is strange to me in Dlang because it adds a parent pointer to the parent class. I don't see the point of this and it seems like an anti-feature. If we wanting that pattern we could implement it ourselves. I suppose in some cases it can be useful but in my case it breaks logical nesting.

I have two classes A and B. I want B to look like it is derived or a member of A.

So I want to do A.B when accessing B to explicitly signal that B is from A.

e.g.,

class A { class B { ...

BUT I do not want class B to be physically connecting to A. I would like to instantiate it outside of A. I can't do this in Dlang. Regardless of why I want to do this, the fact remains that I can't do it in Dlang. So, the question is, how can I still get the logical behavior? I've tried to put B in a module A, but this doesn't seem to work.


In fact, I'm programming from interfaces,

interface A { interface B { ...

class C : A { class D : A.B { ...

So I have for D, analogous to A.B, C.D.

D will never be used, I think outside of D, except when inheriting from D to create polymorphic behavior... direct injection will be used along with factories and requiring D to be a physical child of D will just be a pain in the ass(requiring all of C to be implemented I think).

Basically, D will never access the parent(they are just wrappers around tight objects. So I don't need the parent pointer, yet I'm forced to do so.




Reply via email to