Behavioral 디자인 패턴 중 하나인 상태(상태)는 상태에 따라 클래스의 동작이 변경됩니다.
주요 개념:
컨텍스트: 상태에 따라 동작이 변경되는 클래스/객체
상태: 추상 상태
Concrete 상태: Context 클래스의 동작을 변경하는 다양한 상태를 나타냅니다.
예를 들어 이해해 보겠습니다.
상태.java
public interface 상태 { public void doAction(Context context); }
국가의 구체적인 구현
public class Start상태 implements 상태 { private Context context; public Start상태(){} @Override public void doAction(Context context){ this.context = context; this.context.set상태(this); System.out.println("Player is in Start상태"); } public String toString(){ return "Start 상태"; } } public class End상태 implements 상태 { private Context context; public End상태(){} @Override public void doAction(Context context){ this.context = context; this.context.set상태(this); System.out.println("Player is in End상태"); } public String toString(){ return "End 상태"; } }
메인
public class Main { public static void main(String args[]){ Context context = new Context(); 상태 state = new Start상태(); state.doAction(context); //current state System.out.println(context.get상태().toString()); 상태 state2 = new End상태(); state2.doAction(context); //new 상태 System.out.println(context.get상태().toString()); } }
출력:
Player is in Start상태 Start 상태 Player is in End상태 End 상태
참고: 위 코드는 ISP, LSP, SRP, OCP의 견고한 원칙을 따릅니다
위 내용은 상태의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!