> Java > java지도 시간 > 상태

상태

Mary-Kate Olsen
풀어 주다: 2024-09-22 22:15:32
원래의
690명이 탐색했습니다.

상태

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿