Finite State Machine
Sometimes we need to apply a state in some cases when we want to modify a status of an object. A basic example is water state: gaseous, liquid and solid and the events responsible for change it:
Object: Water
Event: Fusion
States: From solid to liquidEvent: Evaporation
States: From liquid to gaseousEvent: Condensation
States: From gaseous to liquidEvent: Solidification
States: From liquid to solid
Look at this as a simple example that happens around us. As in many other cases, we can apply it in programming using something called state machine.
In the above example, we have different states and events responsible for change these states. Proposed, accepted, rejected and pending are possible states for a object and the state of an object can change when an event occurs. Pretty similar to the example of water states, right?
Originally published at medium.com on August 10, 2017.