전략 패턴 예제

동일한 예제는 http://coder2design.com/strategy-pattern/ 각 open/lock 전략은 기본 인터페이스에서 상속되는 클래스에 정의됩니다. SP는 높은 응집력을 달성하기 위해 인터페이스에 코딩하는 것이 더 낫기 때문에 이를 지원합니다. 와우!! 좋은하지만 OOP는 모든 아니다, 클래스를 구성하는 방법과 그들의 관계는 중요한 것입니다. 뇌, 도시, 개미, 건물 과 같은 복잡한 시스템은 패턴으로 가득합니다. 오래 지속되는 상태를 달성하기 위해 그들은 잘 구성된 아키텍처로 구축됩니다. 그리고 소프트웨어 개발은 배제되지 않습니다. 컴퓨터 프로그래밍에서 전략 패턴(정책 패턴이라고도 함)은 런타임에 알고리즘을 선택할 수 있는 동작 소프트웨어 디자인 패턴입니다. 단일 알고리즘을 직접 구현하는 대신 코드는 대용량 파일의 경우 사용할 알고리즘 패밀리에서 파일의 일부를 메모리에서 읽고 부분적으로 암호화된 결과가 저장되는 다른 전략을 사용할 수 있는 런타임 지침을 받습니다. tmp 파일. zip 또는 rar 파일을 만드는 파일 압축 도구의 예를 사용해 보겠습니다. 먼저 전략이 필요합니다 : 이제 인증 방법은 긴 스위치 케이스를 수행하지 않습니다. 사용 메서드는 사용할 인증 전략을 설정하고 인증 메서드는 인증 메서드를 호출합니다. AuthStrategy가 인증을 구현하는 방법에 대해서는 신경쓰지 않습니다.

일반적으로 전략 패턴은 데이터 구조의 일부 코드에 대한 참조를 저장하고 검색합니다. 이는 네이티브 함수 포인터, 일류 함수, 개체 지향 프로그래밍 언어의 클래스 또는 클래스 인스턴스와 같은 메커니즘또는 리플렉션을 통해 언어 구현의 내부 코드 저장소에 액세스하여 달성할 수 있습니다. 암호에 대 한 올바른 전략 인스턴스를 반환 합니다. 핵심 아이디어는 다양한 전략을 나타내는 개체를 만드는 것입니다. 이러한 개체는 컨텍스트 개체가 전략에 따라 동작을 변경하도록 선택할 수 있는 전략 풀을 형성합니다. 이러한 개체(전략)는 동일한 작업을 수행하고 동일한(단일) 작업을 가지며 동일한 인터페이스 전략을 구성합니다. 전략 패턴은 상속 대신 컴포지션을 사용합니다. 전략 패턴에서 동작은 이러한 인터페이스를 구현하는 별도의 인터페이스와 특정 클래스로 정의됩니다.