getasynckeystate PHP 디자인 패턴 상태 상태 패턴
Jul 29, 2016 am 08:45 AM상태 상태 모드는 GOF의 23개 모드 중 하나이며 명령 모드와 마찬가지로 행동 모드이기도 합니다. 상태 모드는 명령 모드와 매우 유사하며 "인터페이스 구현 클래스" 모드를 적용하고 인터페이스 지향 프로그래밍 원리를 구현합니다.
상태 패턴은 객체 생성 패턴으로, 객체의 내부 상태가 변경되면 객체의 동작이 변경되도록 하는 것입니다. 더 일반적인 예는 네트워크 연결을 나타내는 TCPConnection 클래스에 있습니다. TCPConnection 개체의 상태는 연결이 설정됨(설정됨), 수신 대기 중, 연결이 닫혀 있음(닫힘) 등 여러 가지 상태 중 하나입니다. . TCPConnection 객체는 다른 객체로부터 요청을 받으면 자체 상태에 따라 다르게 응답합니다.
예를 들어 열기 요청의 결과는 연결이 닫혔는지 아니면 연결이 설정되었는지에 따라 달라집니다. 상태 모드는 TCPConnection이 각 상태에서 어떻게 다른 동작을 나타내는지 설명합니다. 이 모델의 핵심 아이디어는 네트워크의 연결 상태를 나타내기 위해 TCPState라는 추상 클래스를 도입하는 것입니다. TCPState 클래스는 다양한 작동 상태를 나타내는 다양한 하위 클래스에 대한 공용 인터페이스를 선언합니다. TCPState의 서브클래스는 특정 상태와 관련된 동작을 구현합니다. 예를 들어 TCPSetup 및 TCPClosed 클래스는 각각 TCPConnection의 연결 설정 및 닫힌 상태에 특정한 동작을 구현합니다.
예를 들어, 사람에게는 화남, 행복함, 미쳤음과 같은 상태가 있습니다. 이러한 상태에서 동일한 일을 해도 결과가 달라질 수 있으며, 사람의 기분은 이 세 가지 상태를 순환할 수 있습니다. 기분 상태 클래스를 사용하여 사람의 기분을 표현하고, 미친, 해피, 앵그리 클래스를 사용하여 다양한 기분을 표현합니다.
먼저 예시를 살펴보겠습니다:
코드 복사 코드는 다음과 같습니다:
<?php
/**
* 상태 패턴
*
* 내부 상태가 변경되면 객체의 동작을 변경하여 객체가 속한 클래스를 수정하는 것처럼 보이게 합니다.
*
*/
인터페이스 상태
{
공용 함수 핸들($state)
공용 함수 디스플레이()
}
클래스 컨텍스트
{
비공개 $_state = null
공용 함수 __construct($state)
{
$this->setState($state)
}
공용 함수 setState ($state)
{
$this->_state = $state;
}
공개 함수 요청()
{
$this->_state->display ();
$this->_state->handle($this)
}
}
StateA 클래스가 State를 구현합니다.
{
공용 함수 핸들($context)
{
$context->setState(new StateB());
}
공용 함수 display()
{
echo "state A<br/>";
}
}
StateB 구현 상태
{
공용 함수 핸들($context)
{
$context->setState(new StateC()); 🎜>}
공용 함수 표시()
{
echo "state B<br/>"
}
}
StateC가 State를 구현함
{
공용 함수 핸들($ context)
{
$context->setState(new StateA())
}
공용 함수 디스플레이()
{
echo "state C<br/> ";
}
}
// 인스턴스화
$objContext = new Context(new StateB());
$objContext->request();
$objContext ->request();
$objContext->request()
$objContext->request(); >
상태 모드를 이해하는 데는 두 가지 핵심 사항이 있습니다.
1. 일반적으로 명령 모드 인터페이스에는 한 가지 방법만 있습니다. 상태 모드 인터페이스에는 하나 이상의 메서드가 있습니다. 또한 상태 패턴 구현 클래스의 메서드는 일반적으로 값을 반환하거나 인스턴스 변수의 값을 변경합니다. 즉, 상태 패턴은 일반적으로 객체의 상태와 관련이 있습니다. 구현 클래스의 메서드에는 인터페이스의 메서드를 재정의하는 다양한 기능이 있습니다. 명령 모드와 마찬가지로 상태 모드도 if...else와 같은 조건 선택 문을 제거하는 데 사용할 수 있습니다.
상태 모드와 명령 모드는 모두 매우 일반적으로 사용되며 상대적으로 작은 세분성 모드이며 더 큰 모드의 일부입니다. 기본적으로 상태 모드와 명령 모드는 매우 유사합니다. 개발자가 단일 사례와 다중 사례에 대해 명확하게 이해하고 있다면 두 가지 모드로 나뉘지 않아도 문제가 없습니다.
위 내용은 getasynckeystate의 내용을 포함하여 PHP 디자인 패턴인 State State 모드를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
