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 '最犀利的剑,只为最强大的手所挥动<br />'; } } class Man implements PerfectMan { protected $wife; //在创建对象的时候保存传递进来的对象 function __onstruct($wife) { $this->wife = $wife; } function cook( ) { $this->wife->cook(); } function writePhp() { echo '我会写php代码<br />'; } } $li = new Wife(); $ming = new Man( ) ; $ming->writePhp(); $ming->cook();
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 '心怀不惧,才能翱翔于天际<br />'; } } class Tiger implements Love { function sajiao( ) { echo '智商太低会传染,离我远点<br />' ; } } class GirlFriend { protected $xingge; function __construct($xingge) { $this->xingge = $xingge ; } function sajiao( ) { $this->xingge->sajiao(); } } $keai = new KeAi; $li = new GirlFriend($keai); $li ->sajiao();
Execution result As follows:
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!