« Return to Thread: [squeak-dev] My view on Traits

[squeak-dev] Re: My view on Traits

by Sophie2 :: Rate this Message:

Reply to Author | View in Thread

"Ryan Mitchley" <ryan.mitchley@...> wrote in message

> As I see it, this confuses
> Y Is-A X (i.e. Y subclasses X)
> with
> Y Has-A-Part X (i.e. Y has a member variable / subpart / trait X)

What about
  Y plays role R1, and role R2

e.g. a Car plays the role of TransportationVehicle and CollateralAsset.

The "state" related to these two roles are not independent: as you rack up
miles on the transportation vehicle, the asset collateral value drops; when
the asset is hauled away for non-payment, the transportation vehicle is not
available.

Doing this with "has-A" becomes quite intricate, unless you systematically
set up a notification channel between the parts and the whole. Perhaps
traits are cleaner for these (within their limitations e.g. static, not
dynamic;  cannot rename callback methods, only alias).

Sophie




 « Return to Thread: [squeak-dev] My view on Traits