JS 디자인 모델 의 상태 모델 개념 과 용법 분석
1.개술
대상 의 내 적 상태 가 바 뀌 었 을 때 행동 을 바 꿀 수 있 도록 허용 하 는데,이 대상 은 그 종 류 를 바 꾼 것 처럼 보인다.
2.해결 하 는 문제
대상 의 상태 전환 을 제어 하 는 조건 식 이 너무 복잡 할 때의 상황 을 주로 해결 합 니 다.상태의 판단 논 리 를 서로 다른 일련의 유형 으로 옮 기 면 복잡 한 논리 판단 을 단순화 할 수 있다.
function Context( _state ) {
this.state = _state;
this.request = function() {
this.state.Handle( this );
}
}
function ConcreteStateA() {
this.Handle = function( context ) {
console.log("A");
context.state = new ConcreteStateB();
}
}
function ConcreteStateB() {
this.Handle = function( context ) {
console.log("B");
context.state = new ConcreteStateA();
}
}
// Context ConcreteStateA
var context = new Context(new ConcreteStateA());
// ,
context.request();
context.request();
상태 모드 의 사용 장면 도 특히 명확 하 다.다음 과 같은 두 가지 가 있다.대상 의 행동 은 상태 에 달 려 있 으 며,실행 시간 에 상태 에 따라 행동 을 바 꿔 야 한다.
하나의 작업 에 대량의 분기 문 구 를 포함 하고 있 으 며,이 분기 문 구 는 이 대상 의 상태 에 의존한다.상 태 는 보통 하나 이상 의 상수 로 표시 된다.
응용 필드:
전 화 를 걸 면 다음 과 같은 몇 가지 상태 가 있 습 니 다.전화번호,전화 중,통화 중,통화 가 끝 납 니 다.
이 몇 가지 상태의 순 서 는 순서대로 진행 된다.그러면 우 리 는 이 몇 가지 상태 에 따라 상태 모델 을 실현 할 수 있다.
전화 번 호 를 받다
다이얼 중
통화 중
통화 종료
끊임없이 이 방법 을 호출 합 니 다
context.request();
현재 가 그런 상태 에 속 하 는 지 판단 합 니 다.더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,,,,
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.