Correctness Bugs and Non-Determinism « Corensic. The Pragmatic Bookshelf. Alec Sharp, in the recent book Smalltalk by Example[SHARP], points up a very valuable lesson in few words: Procedural code gets information then makes decisions.
Object-oriented code tells objects to do things. . — Alec Sharp That is, you should endeavor to tell objects what you want them to do; do not ask them questions about their state, make a decision, and then tell them what to do. Tell Dont Ask. See under the heading "Tell, don't ask".
Or see Very very short summary: It is okay to use accessors to get the state of an object, as long as you don't use the result to make decisions outside the object. Any decisions based entirely upon the state of one object should be made 'inside' the object itself. A clarification of the LawOfDemeter. This runs somewhat contradictory to the OneResponsibilityRule. Every application of TellDontAsk adds to the object a responsibility to make a decision 'inside' the object.