The game “Mestre Mandou” helps explain a very useful principle in programming: do not ask permission to do something; delegate the responsibility to the right object or class. This idea became known as “Tell, don’t ask”.

In object-oriented design, the problem appears when one object asks another whether a condition is valid before performing an action. Instead of centralizing business rules in one place, the code spreads decisions across many points in the system. That creates redundancy and increases the risk of inconsistency.

In practice, “Tell, don’t ask” suggests that you send an instruction to the object and let it decide how to execute it. If a product needs to validate stock and status before being added to a cart, the rule should live on the product itself, not be repeated everywhere it is used.

This style of design leads to less coupling, less duplicated logic and clearer code. The business rule remains in a single place and any future change needs to happen only there. That is much easier to maintain than repeating the same validation in several methods and classes.