Tell, Don't Ask
Tell, Don't Ask means that instead of retrieving an object's internal state and making decisions externally, we should tell the object to perform the operation that owns that decision. This keeps behavior close to the data and strengthens encapsulation. It is especially useful when external code contains conditionals based on another object's internal state. The principle does not mean getters are always wrong; querying is appropriate when the caller genuinely needs information.
Keep business decisions near the state they govern.
Reduce duplicated business rules in callers.
Strengthens encapsulation.
Can reduce coupling to object internals.
Getters are not inherently bad; use them when exposing information is part of the abstraction.