Home > Article > Backend Development > headfirst design pattern php design pattern Facade appearance pattern
Pattern definition: Facade Pattern: External communication with a subsystem must be carried out through a unified facade object to provide a consistent interface for a set of interfaces in the subsystem. The facade pattern defines a high-level interface. This interface Makes this subsystem easier to use. Appearance mode is also called facade mode, which is an object structure mode.
Mode structure:
Copy the code The code is as follows:
class car {
public function start() {
print_r("Car starts");
}
public function check_stop() {
print_r("Brake Check normal");
}
public function check_box() {
print_r("Check the fuel tank is normal");
}
public function check_console() {
print_r("Check whether the dashboard is abnormal");
}
}
//facade mode
class carfacade {
public function catgo(car $carref){
$carref->check_stop();
$carref->check_box();
$carref->check_console();
$ carref->start();
}
}
//The client can simply call it.
$car = new car();
$carObj = new carfacade();
$carObj->catgo($car);
Copy the code The code is as follows:
/**
* Appearance pattern example
*
* Provide a consistent interface for a set of interfaces in the subsystem and define a high-level interface to make this subsystem easier to use
*/
class SubSytem1
{
public function Method1()
{
echo "subsystem1 method1
";
}
}
class SubSytem2
{
public function Method2()
{
echo "subsystem2 method2
";
}
}
class SubSytem3
{
public function Method3()
{
echo "subsystem3 method3
";
}
}
class Facade
{
private $_object1 = null;
private $_object2 = null;
private $_object3 = null;
public function __construct()
{
$this->_object1 = new SubSytem1();
$this->_object2 = new SubSytem2();
$this->_object3 = new SubSytem3();
}
public function MethodA() {
echo "Facade MethodA
";
$this->_object1-> Method1();
$this->_object2->Method2();
}
public function MethodB() {
echo "Facade MethodB
";
$this->_object2->Method2 ();
$this->_object3->Method3();
}
}
// Instantiate
$objFacade = new Facade();
$objFacade->MethodA();
$objFacade-> ;MethodB();
The above introduces the headfirst design pattern, PHP design pattern, and Facade appearance pattern, including the content of the headfirst design pattern. I hope it will be helpful to friends who are interested in PHP tutorials.