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.