--- layout: pattern title: Balking folder: balking permalink: /patterns/balking/ categories: Concurrency tags: - Decoupling --- ## Intent Balking Pattern is used to prevent an object from executing certain code if it is an incomplete or inappropriate state ## Class diagram ![alt text](./etc/balking.png "Balking") ## Applicability Use the Balking pattern when * you want to invoke an action on an object only when it is in a particular state * objects are generally only in a state that is prone to balking temporarily but for an unknown amount of time ## Related patterns * Guarded Suspension Pattern * Double Checked Locking Pattern