差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| study:java:design_pattern:state [2008/09/20 06:07] – banana | study:java:design_pattern:state [2010/10/16 02:09] (現在) – banana | ||
|---|---|---|---|
| 行 39: | 行 39: | ||
| 스테이트 패턴은 컨텍스트 객체에 수많은 조건문을 집어넣는 대신에 사용할 수 있는 패턴이라고 생각하면 됩니다. | 스테이트 패턴은 컨텍스트 객체에 수많은 조건문을 집어넣는 대신에 사용할 수 있는 패턴이라고 생각하면 됩니다. | ||
| - | 행동을 상태 객체 내에 캡슐화시키면 컨텍스트 내의 상태 객체를 바꾸는 것만으로도 컨텍스트 객에츼 | + | 행동을 상태 객체 내에 캡슐화시키면 컨텍스트 내의 상태 객체를 바꾸는 것만으로도 컨텍스트 객체의 |
| 바꿀 수 있으니까요. | 바꿀 수 있으니까요. | ||
| 行 155: | 行 155: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| 行 162: | 行 163: | ||
| <code java> | <code java> | ||
| public class HasQuarterState implements State { | public class HasQuarterState implements State { | ||
| + | | ||
| | | ||
| 行 179: | 行 181: | ||
| | | ||
| System.out.println(" | System.out.println(" | ||
| - | gumballMachine.setState(gumballMachine.getSoldState()); | + | |
| + | if((winner==0) && (gumballMachine.getCount() > 1)) { | ||
| + | | ||
| + | } else { | ||
| + | gumballMachine.setState(gumballMachine.getSoldState()); | ||
| + | } | ||
| } | } | ||
| 行 187: | 行 194: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| 行 222: | 行 230: | ||
| } | } | ||
| </ | </ | ||
| + | ===== SoldOutState Class ===== | ||
| + | <code java> | ||
| + | public class SoldOutState implements State { | ||
| + | GumballMachine gumballMachine; | ||
| + | |||
| + | public SoldOutState(GumballMachine gumballMachine) { | ||
| + | | ||
| + | } | ||
| + | |||
| + | public void insertQuarter() { | ||
| + | | ||
| + | } | ||
| + | |||
| + | public void ejectQuarter() { | ||
| + | | ||
| + | } | ||
| + | |||
| + | public void turnCrank() { | ||
| + | | ||
| + | } | ||
| + | |||
| + | public void dispense() { | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | ===== WinnerState Class ===== | ||
| + | <code java> | ||
| + | public class WinnerState implements State { | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | if (gumballMachine.getCount() == 0) { | ||
| + | | ||
| + | } else { | ||
| + | | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||