juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2007-11-12 03:04 pm

Law of demeter

Intro:
The Law of Demeter for functions requires that a method M of an object O may only invoke the methods of the following kinds of objects:

1. O itself
2. M's parameters
3. any objects created/instantiated within M
4. O's direct component objects

In particular, an object should avoid invoking methods of a member object returned by another method.

[Poll #1087502]

[identity profile] xryun-porosyan.livejournal.com 2007-11-13 12:33 am (UTC)(link)
In many cases #3 may contradict with "an object should avoid invoking methods of a member object returned by another method".

Another method might as well be a factory method, i.e. a method responsible for the creation/instantiation of a new object.

[identity profile] sab123.livejournal.com 2007-11-13 03:24 pm (UTC)(link)
If an object's methods are not to be called, most of the time that object should not be returned/exposed at all.