19. 상태 모드(디자인 모드 노트)
장면
핵심
시스템에서 복잡한 객체의 상태 변환과 다양한 상태에서 동작하는 캡슐화된 문제 구조를 해결하는 데 사용됩니다.
Context
환경류: 환경류 중 하나State
의 대상을 유지하고 현재 상태를 정의했다State
추상상태류ConcreteState
구체적인 상태 클래스: 하나하나가 하나의 상태에 대응하는 행위를 봉함State.java
package cn.itcast.day250.state;
//
public interface State {
public void handle();
}
FreeState.java
package cn.itcast.day250.state;
//
public class FreeState implements State {
@Override
public void handle() {
System.out.println(" ");
}
}
BookedState.java
package cn.itcast.day250.state;
//
public class BookedState implements State {
@Override
public void handle() {
System.out.println(" ");
}
}
CheckedInState.java
package cn.itcast.day250.state;
//
public class CheckedInState implements State {
@Override
public void handle() {
System.out.println(" ");
}
}
설명: 여기서 우리는 상태 인터페이스를 제시했는데 인터페이스에서 하나의 특정한 상태의 행위이며 동시에 세 가지 다른 실현을 제시했다. 각각 세 가지 다른 상태와 관련된 행위를 대표한다.
Context.java
package cn.itcast.day250.state;
// : ,
public class Context {
private State state;
public void setState(State s){
System.out.println(" ");
state = s;
state.handle();//
}
}
설명: 이것은 상하문 클래스입니다. 이 클래스는 현재 방의 상태를 저장하고 상태 사이의 전환을 완성하는 데 주로 사용됩니다.
Client.java
package cn.itcast.day250.state;
public class Client {
public static void main(String[] args) {
Context tx = new Context();
tx.setState(new FreeState());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.