The application of adapter mode and strategy mode in PHP

慕斯
Release: 2023-03-10 19:58:01
Original
1643 people have browsed it

There are too many patterns in PHP that we need to understand and master. I wonder how many patterns you have mastered after studying for so long? How much do you know about the use of adapter mode and strategy mode in PHP? This article will teach you about the use of adapter mode and strategy mode in PHP. Let’s learn together

Related recommendations:What is the observer pattern in PHP? How to use it?

Adapter:

There are many adapters in life. The power adapter is the transformer inside 220v

can convert - a class The interface is converted into another interface that the customer wants, so that the originally incompatible interfaces can work together. The popular understanding is to adapt different interfaces into a unified interface

Similarly, we create a new file and define a class class. There is a method in the class class. We know such a class, but we only have one Method, and at this time we need to expose an interface to the outside world, so how do we implement the adapter pattern through a class? We continue to write a class, because the following class is a new class we added, so we can write any member method, And when we create an object, we need to save the object passed in; let’s take the code as an example:

<?php
interface PerfectMan
{
  function cook();
  function writePhp();
}
class Wife
{
  function cook( )
{
  echo &#39;最犀利的剑,只为最强大的手所挥动<br />&#39;;
}
}
class Man implements PerfectMan
{
  protected $wife;
  //在创建对象的时候保存传递进来的对象
  function __onstruct($wife)
  {
  $this->wife = $wife;
  }
  function cook( )
  {
    $this->wife->cook();
  }
  function writePhp()
  {
    echo &#39;我会写php代码<br />&#39;;
}
}
$li = new Wife();
$ming = new Man( ) ;
$ming->writePhp();
$ming->cook();
Copy after login

Strategy mode:

(1) Multiple classes only distinguish When expressing different behaviors, you can use Strategy mode to dynamically select the specific

behavior to be executed at runtime.

(2) Different strategies (algorithms) need to be used in different situations, or the strategy may be implemented in other ways

in the future.

(3) The implementation details of specific strategies (algorithms) are hidden from customers and are completely independent of each other.

(4) The client must know all the strategy classes and decide which one to use. The strategy mode is only applicable

when the client knows all the algorithms or behaviors. .

(5) The strategy model creates many strategy classes, and each specific strategy class will generate a new class.

Advantages:

1. Strategy mode provides a way to manage related algorithm families

2. The algorithm is enclosed in an independent Strategy class so that You can change it independently of its Context

3. Using strategy mode can avoid using multiple conditional transfer statements

The code is as follows:

<?php
interface Love
{
  function sajiao();
}
class KeAi implements Love
{
  function sajiao( )
{
  echo &#39;心怀不惧,才能翱翔于天际<br />&#39;;
}
}
class Tiger implements Love
{
  function sajiao( )
{
  echo &#39;智商太低会传染,离我远点<br />&#39; ;
}
}
class GirlFriend
{
  protected $xingge;
  function __construct($xingge)
{
  $this->xingge = $xingge ;
}
  function sajiao( )
{
  $this->xingge->sajiao();
}
}
$keai = new KeAi;
$li = new GirlFriend($keai);
$li ->sajiao();
Copy after login

Execution result As follows:

The application of adapter mode and strategy mode in PHP

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of The application of adapter mode and strategy mode in PHP. 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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template