This article mainly introduces and briefly describes the adapter pattern in PHP design patterns. Interested friends can refer to it. I hope it will be helpful to everyone.
Goal:
Can convert the interface of a class into another interface that the customer wants, so that originally incompatible interfaces can work together. The popular understanding is to adapt different interfaces into a unified API interface.
Role:
Target adaptation target, this role defines what interface other classes are converted to, which is our expected interface.
Adaptee is the interface that needs to be adapted.
Adapter adapter, the other two roles are existing roles, and the adapter role needs to be newly established. It is used to adapt the Adaptee and Target interfaces.
Application scenarios:
If data operations include mysql, mysqli, pdo, sqlite, postgresql, etc., if the generation environment needs to change the database, the adapter mode unified interface can be used . The same applies to the cache scenario. This will make it more convenient to change the cache strategy (memcache, redis, apc).
Advantages:
The adapted person completes the adaptation of the adaptation target through the adapter to achieve the purpose of being transparent to customers.
Sample code:
//适配目标,规定的接口将被适配对象实现 interface IDatabase { public function connect($host, $username, $password, $database); public function query($sql); } //适配器 class Mysql implements IDatabase { protected $connect; public function connect($host, $username, $password, $database) { $connect = mysql_connect($host, $username, $password); mysql_select_db($database, $connect); $this->connect = $connect; //... } public function query($sql) { //... } } //适配器 class Postgresql implements IDatabase { protected $connect; public function connect($host, $username, $password, $database) { $this->connect = pg_connect("host=$host dbname=$database user=$username password=$password"); //... } public function query($sql) { //... } } //客户端使用 $client = new Postgresql(); $client->query($sql);
As above:
Target adaptation target: IDataBase interface
Adaptee is adapted Author: database operation function of mysql and postgresql
Adapter Adapter: mysql class and postgresql class
Summary: The above is the entire content of this article, I hope it can be useful for everyone's learning helped.
Related recommendations:
phpHow to get the file MIME type
php operates the database to determine whether the table exists Method
php method to operate MySQL database and session dialogue
The above is the detailed content of Briefly describe the adapter pattern in PHP design patterns. For more information, please follow other related articles on the PHP Chinese website!