On Wednesday, 7 August 2013 at 08:18:43 UTC, SteveGuo wrote:
what? O_o
let me explain, abstract class requires its successors to implement all methods, but may have fields. class successors *always* do something, either their methods has derived behavior or overridden ones. so does interface, if you has class derived from interface then its successors may or may not override its methods.

Thanks for replying, I think I need read more online-docs.

As mentioned by evilrat earlier the 'string signature' should probably be made a readonly property, set in the constructor. I don't think D supports defining a constructor signature on interfaces (I could be wrong), so you want to define an invariant as part of the contract.


You may also want to protect the constructor and implement a factory method (or equivalent) pattern. I will need to look it up, but if I recall it may be possible to define a 'final' function on the interface that can set the 'signature'.

I regret that I cannot at this time give you a definitive answer as I'm not in my office where I could verify.

Reply via email to