Posts

Showing posts from November, 2017

State Design Pattern

Image
It is one the behavioural design pattern The state design pattern is a design pattern that allows an object to completely change its behavior depending upon its current internal state. The state design pattern change the object's behavior at run-time without changing the interface used to access the object or losing the current state. The class change is hidden to outside world with the use of wrapper object. Its also known as state machine. Example: In game design; we have many screens/state main-menu, loading screen, game-play, in game menu screen, result screen etc. To maintain different screen state; we use state design pattern to traverse different screen. Example code #include<iostream> using namespace std; class GameState {     public:         virtual void handleKey()=0;         virtual void handleMouse()=0; }; class Game {     GameState *currentScreen; ...