상태 머신을 사용하여 동작 및 상태 전환 정의 — 데이트 앱으로 설명
(2020 년 12 월 20 일)
상태 란?
정보 기술 및 컴퓨터 과학에서 시스템은 상태 저장 이전 이벤트 또는 사용자 상호 작용을 기억하도록 설계된 경우 기억 된 정보를 시스템의 상태 라고합니다. .
시스템의 상태는 종종 사용자가 수행하는 행동의 집합으로 정의됩니다. 주는 특정 주에서의 특정 행동이 유효한지 여부를보다 체계적으로 확인하는 방법이기 때문에 중요합니다.
신호등 상태
신호등을 예로 고려하세요. 녹색이면 운전자와 승객은 다음에 빨간색이 아닌 노란색으로 표시 될 것으로 예상합니다. 노란색으로 바뀌면 녹색이 아닌 빨간색을 기대합니다. 따라서 여기의 상태는 간단합니다.
Green -> Yellow -> Red
^ |
|\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_|
화살표 (일명 상태 전환 허용)를 따라 가면 신호등이 잘 작동합니다.
데이트 앱의 경기 상태
이제 더 복잡한 예로 데이트 앱을 예로 들어 보겠습니다. 사람들이 온라인에서 매치할 수있는 앱을 만들고 있다고 가정 해 보겠습니다. 알고리즘이 준비되었고 사용자의 앱에 나타나는 일치의 논리를 작성해야한다고 가정 해 보겠습니다.
엔티티를 정의하겠습니다. match 먼저 두 사람 간의 일치를 나타냅니다. 경기를 디자인하려면 고려해야 할 몇 가지 상태가 있습니다.
일치하지 않는 무작위 사람이 나타나는 것과 같은 예기치 않은 행동을 사람들이 보지 않도록 상태가 필요합니다. 화면에 인사가 표시됩니다.

내 생각 과정 :
- 먼저, 일치 항목은 생성되어야 , 즉 특정 알고리즘 집합이 경기 준비가 된 두 사람을 선택합니다. 물론 알고리즘은 둘 다 일치하는지, 서로의 선호도에 맞는지, 금지되지 않았는지 등을 미리 확인해야합니다.
- 그러면이 일치는 보류 (다른 사람의 스 와이프 대기 중) 또는 실패 첫 번째 사용자의 작업에 따라. 사용자가 오른쪽으로 스 와이프하면 (데이트 앱 용어로 좋아요를 의미) 상태가 생성됨 에서 보류 중 . 사용자가 왼쪽으로 스 와이프하면 ( 당신이 마음에 들지 않습니다를 의미) 상태가 실패 로 변경됩니다.
- 그런 다음 두 사람이 서로를 좋아하면 대기 중 에서 일치됨 .
- 일치하는 사람이 일치를 “일치 해제”하여 상태를 unmatched .
- 모든 상태 변경 사항을 다룬 것 같습니다. 하지만이게 다야? 흠… 돌아가서 다시 스 와이프 할 수있는 되감기라는 유료 기능이 없나요? 어떻게해야하나요?
모든 변경 사항이 포함되었는지 어떻게 확인할 수 있나요? 그렇다면 어떻게 프로그래밍합니까?
상태 머신이란 무엇입니까?
확정 된 수명 주기로 엔티티의 동작을 모델링하는 방법론
상태 지향 시스템을 구축 할 때 상태 머신은 복잡한 전환과 트리거를 더 잘 파악하는 데 유용합니다.
유한 상태 머신 (FSM)
It 유한 한 수의 상태 em 중 하나 일 수있는 추상 기계 입니다. > 언제든지. FSM은 일부 입력 에 대한 응답으로 한 상태에서 다른 상태로 변경할 수 있습니다. 한 상태에서 다른 상태로의 변경을 전환 이라고합니다. FSM은 상태 목록, 초기 상태 및 각 전환을 트리거하는 입력으로 정의됩니다.
데이트 앱 예제를 계속 진행하겠습니다. 일치 iv 뒤에있는 논리에서 상태 다이어그램 을 만드는 경우 id = “6d3c38c74f”>