DesignPatternState