PHP 전략 패턴 정의 및 사용법(자세한 설명)
이 글은 주로 PHP 전략 패턴의 정의와 사용법을 소개하고, PHP 전략 패턴의 원리와 구현, 사용법을 예제 형식으로 간략하게 분석했습니다. 도움이 필요한 친구가 참고할 수 있습니다
자세한 내용은 다음과 같습니다.
Overview
전략 패턴은 객체의 행동 패턴에 속합니다. 그 의도는 일련의 알고리즘을 대상으로 하고 각 알고리즘을 공통 인터페이스가 있는 독립적인 클래스로 캡슐화하여 서로 교체할 수 있도록 하는 것입니다. 전략 패턴을 사용하면 클라이언트에 영향을 주지 않고 알고리즘을 변경할 수 있습니다.
UML 다이어그램
전략 패턴의 주요 역할
이 패턴은 세 가지 역할로 설계되었습니다.
환경 역할(컨텍스트) : 전략에 대한 참조
추상 전략(전략) 역할 : 이는 일반적으로 인터페이스 또는 추상 클래스에 의해 구현되는 추상 역할입니다. 이 역할은 특정 전략 클래스에 필요한 모든 인터페이스를 제공합니다
구체적인 전략(ConcreateStrategy) 역할: 관련 알고리즘 또는 동작을 팩
사용 시나리오
이제 장바구니 시스템을 설계한다고 가정해 보겠습니다. 가장 간단한 경우입니다. 모든 상품의 단가에 수량을 곱하는 것인데, 실제 상황은 확실히 이보다 더 복잡합니다. 예를 들어 일반회원은 할인이 없고, 중급회원은 20%, 상급회원은 30% 할인이 적용됩니다.
위 설명에 따르면 상품 가격은 다음 알고리즘 중 하나에 따라 결정됩니다.
일반 회원 할인 없음
중급 회원 20% 할인
고급 회원 30% 할인
UML 다이어그램
구조 코드 :
<?php /** * 策略抽象类 * @author wzy * */ interface Strategy { public function calPrice ($price); } /** * 普通会员策略类 * * @author wzy * */ class PrimaryStrategy implements Strategy { public function calPrice ($price) { echo "普通会员无折扣"; return $price; } } /** * 中级会员策略类 * * @author wzy * */ class MiddleStrategy implements Strategy { public function calPrice ($price) { echo "中级会员8折优惠"; return $price * 0.8; } } /** * 高级会员策略类 * * @author wzy * */ class HighStrategy implements Strategy { public function calPrice ($price) { echo "高级会员7折优惠"; return $price * 0.7; } } /** * Context实现类 * * @author wzy * */ class Price { /** * 具体的策略类对象 * * @var object */ private $strategyInstance; /** * 构造函数,传入一个具体的策略对象 * * @param object $instance */ public function __construct ($instance) { $this->strategyInstance = $instance; } /** * 计算货品的价格 * * @param double $price */ public function quote ($price) { return $this->strategyInstance->calPrice($price); } } /** * 客户端操作 */ $high = new HighStrategy(); $priceClass = new Price($high); $price = $priceClass->quote(400); echo $price; ?>
전략 패턴 검토
전략 패턴의 초점은 알고리즘을 구현하는 방법이 아니라이를 구성하고 호출하는 방법입니다. 알고리즘을 사용하여 프로그램 구조를 더욱 유연하게 만듭니다. 확장성과 유지 관리성이 향상됩니다.알고리즘의 평등
전략 모델의 가장 큰 특징은 각 전략 알고리즘의 평등입니다. 일련의 특정 전략 알고리즘의 경우 모두가 동일한 상태를 가지므로 알고리즘 간의 상호 변환이 가능합니다런타임 전략의 고유성
실행 중에는 전략 모드를 각 순간에만 사용할 수 있습니다. 특정 전략 구현 개체는 서로 다른 전략 구현 간에 동적으로 전환될 수 있으며 동시에 하나의
만 있습니다. 관련 권장 사항: PHPStrategy Mode
JS의 Strategy Mode
사용 설명
PHP 분석 예제전략 패턴
🎜🎜
위 내용은 PHP 전략 패턴 정의 및 사용법(자세한 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
