Excerpted from DomainDrivenDesignBook
Problem: Most interesting objects end up doing things that can?t be characterized by primitives alone.
Solution: Where it fits, define an operation whose return type is the same as the type of its argument(s). If the implementer has state that is used in the computation, then the implementer is effectively an argument of the operation, so the argument(s) and return value should be of the same type as the implementer. Such an operation is closed under the set of instances of that type. A closed operation provides a high-level interface without introducing any dependency on other concepts.
See also:
ClosureOfOperations is mentioned on: MessagesByTopic