Sealed classes - would you want them in D?

KingJoffrey KingJoffrey at KingJoffrey.com
Wed May 16 02:24:18 UTC 2018


On Wednesday, 16 May 2018 at 02:15:45 UTC, KingJoffrey wrote:
>
> "The unit of object encapsulation in D is the class." - page 
> 175, The D Programming Language, 2010, Andrei Alexandrescu.
>
> What it really should have included, locally, within that same 
> section, is the implications of this 'encapsulation' with 
> regards to how 'facebook like friendship' is a core design 
> component of the D module.
>
> i.e, on the next line, Andrei could have continued..
>
> "However, if your class is contained within a module, then this 
> encapsulation barrier kinda breaks down, because everything in 
> the module becomes a friend of that class, whether you like it 
> or not. You have no say in the matter. If you don't like it, 
> fine, but that's how D does things, so just be careful what you 
> put in a module".

Although, to be fair to Andrei, once you get to page 200 (25 
pages after the above comment about class encapsulation), you do, 
finally, get some clarification:

"In all contexts, private has the same power: it restricts symbol 
access to the current module (file). This behavior is unlike that 
in other languages, which limit access to private symbols to the 
current class only. ...  If class-level protection is needed, 
simply put the class in its own file."



More information about the Digitalmars-d mailing list