top of page
Search
Writer's pictureAbhinaw Tripathi

Design Pattern - Sate Design Pattern


What is State Design Pattern?

The sate design pattern is a behavioral object design pattern.The idea behind the state patterns is to change object behavior depending on its state.State Pattern allows objects to behave differently depending on internal state that is Context.The context can have a number of internal states whenever the request method is called on the Context,the message is delegated to the State to handle.

For Example:

The control panel of a simple media player could be used as an example.Can have many states such as Play,Pause,Stop and Restart etc.

Implementation:

/**

* @author Abhinaw.Tripathi

*

*/

interface State

{

public void pressPlay(MusicPlayerContextInterface context);

}

class StandbyState implements State

{

@Override

public void pressPlay(MusicPlayerContextInterface context)

{

context.setState(new PlayingState());

}

}

class PlayingState implements State

{

@Override

public void pressPlay(MusicPlayerContextInterface context) {

// TODO Auto-generated method stub

context.setState(new StandbyState());

}

}

interface MusicPlayerContextInterface

{

// public State state;

public void requestPlay();

public void setState(State state);

public State getState();

}

class MusicPlayerContext implements MusicPlayerContextInterface

{

State state;

public MusicPlayerContext(State state)

{

this.state=state;

}

@Override

public void requestPlay() {

// TODO Auto-generated method stub

state.pressPlay(this);

}

@Override

public void setState(State state) {

// TODO Auto-generated method stub

this.state=state;

}

@Override

public State getState() {

// TODO Auto-generated method stub

return state;

}

}

public class StatePatternTest {

/**

* @param args

*/

public static void main(String[] args)

{

MusicPlayerContext musicPalyer=new MusicPlayerContext(new StandbyState());

musicPalyer.requestPlay();

musicPalyer.setState(new PlayingState());

musicPalyer.requestPlay();

}

}

Advantages of State Design Pattern:

  • State patterns provides a clear state representation of an Object.

  • It allows a clear way for an object change its type at runtime.


1 view0 comments

Recent Posts

See All
bottom of page