state pattern 예제

상태 디자인 패턴의 예 아래 예에서 모바일 상태 시나리오를 구현했습니다. 경고와 관련하여 모바일은 다른 상태에 있을 수 있습니다. 예를 들어, 진동과 무음. 이 경고 상태에 따라 경고를 수행할 때 모바일 동작이 변경됩니다. 컨텍스트 클래스에서 상태 인터페이스 형식의 참조 필드와 해당 필드의 값을 재정의할 수 있는 공용 setter를 추가합니다. 컨텍스트의 상태를 전환하려면 상태 클래스 중 하나의 인스턴스를 만들고 컨텍스트에 전달합니다. 컨텍스트 자체 또는 다양한 상태 또는 클라이언트에서 이 작업을 수행할 수 있습니다. 이 작업이 수행되는 모든 경우 클래스는 인스턴스화하는 구체적인 상태 클래스에 종속됩니다. 각 상태에 대한 상태별 동작을 캡슐화하는 별도의(상태) 개체를 정의합니다. 즉, 상태별 동작을 수행하기 위한 인터페이스(state)를 정의하고 각 상태에 대한 인터페이스를 구현하는 클래스를 정의합니다.

다시 말하지만, 우리는 국가 사이의 연결을 참조하십시오. 패키지가 주문한 상태에서 배달됨으로 상태가 변경되고 printStatus()의 메시지도 변경됩니다. 이 예제에서는 전환 중에 패키지가 서로 다른 상태에 있을 수 있는 택배 배달 시스템을 시뮬레이션합니다. 오늘날의 패턴은 개체가 내부 상태에 따라 다른 방식으로 행동할 수 있도록 하는 상태 패턴입니다. 상태는 클래스에 전달된 일부 인수를 기반으로 약간 다른 계산을 수행하는 등 클래스가 다르게 행동해야 할 때 사용됩니다. 또한, 상태 간의 전환이 발생했습니다, 우리의 클래스는 상태를 변경하고 결과적으로 그 동작. Context는 또한 상태를 구현하고 현재 상태에 대한 참조를 유지하고 요청을 상태 구현으로 전달합니다. 이 예제에서는 TV를 켜고 다른 하나는 끄는 두 가지 상태를 가질 수 있습니다. 따라서 이러한 동작에 대한 두 가지 구체적인 상태 구현을 만듭니다. 상태 패턴은 컴퓨터 프로그래밍에서 내부 상태에 따라 동일한 개체에 대한 다양한 동작을 캡슐화하는 데 사용됩니다.

이는 개체가 조건문에 의존하지 않고 런타임에 동작을 변경하여 유지 관리 가능성을 개선하는 더 깨끗한 방법이 될 수 있습니다. [1]:395 상태 패턴은 개체의 가능한 모든 상태에 대해 새 클래스를 만들고 이러한 클래스에 모든 상태별 동작을 추출하는 것을 제안합니다. 이 과정에서는 방대한 수의 디자인 패턴을 자세히 알아보고 Java에서 이러한 패턴이 어떻게 구현되고 활용되는지 살펴보겠습니다. 패턴이 중요한 이유를 이해하고 각 패턴을 적용하는 시기와 방법을 배우게 됩니다. 여기에서 확인하세요! 자바의 상태 디자인 패턴에 대한 모든 것을, 나는 당신이 그것을 좋아 바랍니다. 컨텍스트는 동작을 상태 구현에 위임합니다. 즉, 들어오는 모든 요청은 상태의 구체적인 구현에 의해 처리됩니다. 게다가 각 상태에 대한 모든 논리는 모든 메서드에 분산됩니다. 이제 상태 패턴을 사용할 것으로 간주될 수 있습니다. 상태 디자인 패턴 덕분에 전용 클래스의 논리를 캡슐화하고 단일 책임 원칙 및 개방/폐쇄 원칙을 적용하고 더 깔끔하고 유지 관리 가능한 코드를 가질 수 있습니다.

Mentalny Teatr Hipnozy > state pattern 예제