The
Balking pattern is a
software design pattern that only executes an action on an
object when the object is in a particular state. For example, if an object reads
ZIP files and a calling method invokes a get method on the object when the ZIP file is not open, the object would "balk" at the request. In the
Java programming language, for example, an IllegalStateException might be thrown under these circumstances.
There are some in this field that think this is more of an Anti-Pattern, than a design pattern. If an object cannot support its API, it should either limit the API so that the offending call is not available or it should …
- be created in a sane state
- not make itself available until it is in a sane state
- become a façade and answer back an object that is in a sane state
… so that the call can be made without limitation.
See also