PHP strategy pattern definition and usage (detailed explanation)

墨辰丷
Release: 2023-03-26 18:02:01
Original
2998 people have browsed it

This article mainly introduces the definition and usage of PHP strategy pattern, and briefly analyzes the principle, implementation and usage of PHP strategy pattern in the form of examples. Friends in need can refer to it

The details are as follows:

Overview

The strategy pattern belongs to the behavior pattern of the object. Its intention is to target a set of algorithms and encapsulate each algorithm into an independent class with a common interface so that they can be replaced with each other. The strategy pattern allows the algorithm to change without affecting the client

UML diagram

Main roles in strategy mode

This mode is designed with three roles:

Environment role (Context): Persistence There is a reference to Strategy
Abstract Strategy (Strategy) role: This is an abstract role, usually implemented by an interface or abstract class. This role gives all the interfaces required by specific strategy classes
Specific strategy (ConcreateStrategy) role: wraps related algorithms or behaviors

Used Scenario

Suppose you want to design a shopping cart system now. The simplest case is to multiply the unit price of all goods by the quantity, but the actual situation is definitely more complicated than this. For example: there is no discount for ordinary members, a 20% discount for intermediate members, and a 30% discount for senior members.

According to the above description, the product price is based on one of the following algorithms:

No discount for ordinary members
20% off for intermediate members
7 for senior members Fold

UML diagram

##Implementation code:

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; ?>
Copy after login

Reviewing the Strategy Pattern

The focus of the Strategy Pattern is not how to implement the algorithm, But how to organize and call these algorithms so that the program structure is more flexible and has better scalability and maintainability

Equality of algorithms

A great feature of the strategy model is the equality of each strategy algorithm. For a series of specific strategy algorithms, everyone has the same status, so that mutual conversion between algorithms can be achieved

Uniqueness of runtime strategies

During operation, the strategy mode can only use one specific strategy implementation object at each moment. Although it can dynamically switch between different strategy implementations, there is only one

## at the same time. #Related recommendations:

Using PHP

Strategy Mode
##JS

Strategy Mode

Usage Detailed Explanation
Example analysis PHP

Strategy pattern


##

The above is the detailed content of PHP strategy pattern definition and usage (detailed explanation). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!