Am 29.09.2011, 10:12 Uhr, schrieb Peter Alexander <peter.alexander...@gmail.com>:

Why would a car be able mutate it's vendor?

A car is a passive object, that's obvious. Of course it doesn't mutate the vendor and if it did, *mutate* doesn't mean the vendor can be robbed by the car or something. The vendor class still has it's encapsulation and invariants.

My point here is, that it is just the straight forward way to get that information about a car. The vendor itself doesn't need to have a reference to the car any more. It comes handy if I look at the car of my neighbor and want to buy from the same vendor who's address is printed on the license plate. The fastest way to implement that in a computer is a simple mutable pointer. Mutable, because when I buy from the vendor it has to change it's internal state.

The next best solution I can imagine is an external meta data table for cases like this. It would be a hash map that holds a CarMetaData struct for each car pointer with whatever is not part of the state of a car in the close sense.

Reply via email to