Blog post : OOP composition with mixins
Dicebot via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Mon Aug 31 08:11:14 PDT 2015
On Monday, 31 August 2015 at 14:44:27 UTC, jmh530 wrote:
> On Monday, 24 August 2015 at 11:10:16 UTC, Dicebot wrote:
>> Rough summary of the talk I have given for recent Berlin D
>> meetup event:
>> https://blog.dicebot.lv/posts/2015/08/OOP_composition_with_mixins
>
> It seems like mixin templates can be used like alias this, but
> mixin templates are more general. When would I want to use
> alias this instead of a mixin template?
`alias this` is more suitable for cases when reused functionality
is self-contained and useful separately. It is closer in spirit
to inheritance because you take existing entity and provide its
API as part of new aggregate.
As a simple rule of a thumb, I'd go for `alias this` approach
when mixed in functionality does not need to know anything about
surrounding context (== has no template parameters). mixin
template feels more convenient for small configurable building
blocks that don't have well-defined semantics without any
specific context.
Important difference between `alias this` and `mixin` is that
`alias this` allows implicit casting to the aliased field type -
which can be both merit and drawback depending on design
intentions.
More information about the Digitalmars-d-announce
mailing list