Java Reference
In-Depth Information
public void click()
{
door.setState(door.STAYOPEN);
}
public void timeout()
{
door.setState(door.CLOSING);
}
}
CHALLENGE 22.4
Write the code for DoorClosing.java .
The new design leads to much simpler code, but you might feel a bit dissatisfied that the
"constants" that the Door class uses are in fact local variables.
Making States Constant
Suppose that you decide to move the state constants to a DoorConstants interface. For this
approach to work, you have to eliminate the Door instance variable from the DoorState
class. You can drop this variable by changing the click() , complete() , and timeout()
transition methods in the DoorState class to require a Door object as an input parameter. In
this design, a Door object that receives, for example, a click() method from the carousel
forwards this call as state.click(this) .
Search WWH ::




Custom Search