Software Design/Make function to access its enclosing class more than any of its arguments

Checklist question:
 * A function accesses its enclosing class more frequently than any of its object arguments?

Sometimes a function which accesses one of its object arguments more than its enclosing class  can simply be moved to.

At other times, this situation may identify some problem with the decomposition of the state between classes, or with the decomposition of the logic between functions. The parts of the state of  that are accessed in the subject function may better be moved to. If the whole state of  is accessed in the subject function then it might be that   shouldn't be a separate class and should be merged into. Alternatively, it may be the case that  fails to provide a function which computes something based on multiple parts of its state. If such function was available it could have been used in the subject function to reduce the number of accesses to.

Why
If locations for all functions in all classes are chosen according to this practice then the classes are generally more loosely coupled and it's likely that visibility of some members (fields and functions) of some of the classes could be narrower which makes these classes easier to change. See practice Minimize the accessibility of classes and members.

Why not
Implementations of Visitor pattern, Kent Beck's Self Delegation pattern, and, in some instances, of Strategy pattern are exempt from following this practice. However, all these patterns aim at the same goal of making the change easier by localizing it and thus reducing the change amplification. These patterns are used in the situations when the general rule of thumb that the data and the logic that references that data change together is not the case.

Related

 * Extract solving unrelated subproblems into separate functions