strategy pattern 예제

    이제 인증 방법은 긴 스위치 케이스를 가지고 있지 않습니다. 사용 메서드는 사용할 인증 전략을 설정하고 인증 메서드는 인증 메서드를 호출합니다. AuthStrategy가 인증을 구현하는 방법에 대해서는 신경쓰지 않습니다. 예를 들어, 우리는 문을 잠글 수있는 잠금 메커니즘의 다른 스타일을 가지고 DoorProgram이 있습니다. 다른 잠금 메커니즘은 문 하위 클래스 사이에 변경으로. 전략 설계 패턴에는 컨텍스트, 전략 및 ConcreteStrategy의 세 가지 주요 엔터티가 있습니다. 클라이언트에서 컨텍스트를 사용하는 것은 다를 수 있습니다 – 클라이언트는 컨텍스트에 어떤 전략을 사용하려는지 알수 있거나 컨텍스트가 클라이언트를 대신하여 결정할 수 있습니다. 내 의견으로는, 그것은 컨텍스트에이 결정을 두고 하는 것이 좋습니다., 그것은 우리가 우리의 공장 패턴에서 본 형식 전환 문을 제거. 전략 패턴에는 호스트 클래스에서 알고리즘을 제거하고 동일한 프로그래밍 컨텍스트에서 런타임에서 선택할 수 있는 다른 알고리즘(예: 전략)이 있을 수 있도록 별도의 클래스에 배치하는 작업이 포함됩니다. 여기서 전략 디자인 패턴을 적용하면 모든 인증 전략이 구현해야 하는 인터페이스를 만듭니다.

    Strategy 패턴을 사용하면 파일을 다양한 형식으로 저장하거나 다양한 정렬 알고리즘을 실행하거나 파일 압축을 수행합니다. 메서드 재정의 및 오버로드도 클래스 메서드의 개체에 따라 재지정되는 것처럼 Strategy 디자인 패턴의 구현을 호출하고 런타임에 결정된다고 말할 수 있습니다. 전달된 매개 변수에 따라 메서드 호출을 오버로드하는 경우. 둘 다 전략 디자인 패턴의 구현이기도 합니다. 첫 번째 예제를 사용하여 JS에서 SP를 적용하는 방법을 보여 드리겠습니다. 이 단어의 의미를 이해하기 위해 몇 가지 코드를 살펴보겠습니다. 잠재적인 함정에 대한 예를 들어 전략 패턴을 적용하여 문제를 어떻게 극복하는지 살펴보겠습니다. 전략 패턴은 런타임에 알고리즘을 선택할 수 있는 동작 설계 패턴입니다 — 위키백과 아주 똑바로, 우리는 모든 정렬 알고리즘이 준수해야 하는 인터페이스를 가지고 있습니다. 정렬 프로그램은 정렬 전략을 runSort에서 매개 변수로 사용 하 고 정렬 메서드를 호출 합니다. SortingStrategy의 모든 구체적인 구현 정렬 메서드를 구현 해야 합니다. 이제 전략 패턴 예제 알고리즘이 준비되었습니다. 우리는 쇼핑 카트를 구현할 수 있으며 지불 방법은 지불 전략으로 입력이 필요합니다.

    이 개념을 명확히 하기 위해 두 가지 방법을 구별하는 예제가 있습니다 — 개와 고양이라는 두 가지 구체적인 구현이 있는 추상적인 Animal 클래스를 생각해 보십시오. 현재까지 원래 책인 디자인 패턴: 재사용 가능한 객체 지향 소프트웨어의 요소에 설명된 대로 24개의 디자인 패턴이 있습니다.