>  기사  >  Java  >  상태

상태

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-09-22 22:15:32673검색

상태

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.