From Brad_Appleton-GBDA001@aieg.mot.com Wed Jan 8 12:30:45 1997 ... The article is in the ROAD section of the November/December 1996 issue of JOOP (Volume 9, No. 7). It is entitled "Building reusable classes for frameworks" by Gary Brown and Peter Forte. The article doesnt actually make any mention of Demeter or LoD but it has a number of guidelines that I think are actually more detailed refinements or applications of LoD. They present a bunch of design/programming guidelines and rules for writing classes and class libraries to make them into reusable class frameworks (useable by client subclasses as well as "normal" clients). Some of the rules they propose are: 1. Whenever an object needs to request a service of some other external object, this external service request should be encapsulated in an internal non-public method of the object. This allows derived classes to override the service request with a more specialized one (it is also a use of the GoF Template pattern). 2. Whenever an object needs to instantiate some other externally associated object, it should do so using a non-public method to perform the instantiation. This allows derived classes to instantiate a more specialized object if needed. These two are just a sample of some of the "rules" mentioned in the article. Anyway, to me the authors seem to be extending the LoD with corollaries like: A *public* method M of a class C should invoke only its own public and private methods, and those of its superclasses. (Any non-public methods should obey LoD.) There are probably some other corollaries to LoD that can be implied from this article as well. Anyway, I thought you might be interested. ... Cheers! -- Brad Appleton bradapp@enteract.com "And miles to go before I sleep." www.enteract.com/~bradapp