O'Reilly logo
  • zhang xintao thinks this is interesting:

whenever a class needs to exhibit variant behavior depending on the state of an object