文章摘要
这篇文章描述了一个PHP程序的结构,展示了如何通过一个外部类(Facade)来整合多个子系统。文章中定义了三个子类(SubSystemA、SubSystemB、SubSystemC),每个子类都有一个操作方法。Facade类继承了这三个子类,并在构造函数中为每个子类实例化了一个对象。Facade的operation方法调用每个子类的操作方法,从而实现了对外的交互。文章还展示了客户端代码,展示了如何通过Facade类调用这些操作方法。文章重点突出了Facade作为整合多个子系统的聚合对象的作用,以及其在客户端代码中的应用。
<?php
// 子系统A
class SubSystemA
{
public function operationA()
{
echo “SubSystemA operation.\n”;
}
}
// 子系统B
class SubSystemB
{
public function operationB()
{
echo “SubSystemB operation.\n”;
}
}
// 子系统C
class SubSystemC
{
public function operationC()
{
echo “SubSystemC operation.\n”;
}
}
// 外观类
class Facade
{
private $subSystemA;
private $subSystemB;
private $subSystemC;
public function __construct()
{
$this->subSystemA=new SubSystemA();
$this->subSystemB=new SubSystemB();
$this->subSystemC=new SubSystemC();
}
public function operation()
{
$this->subSystemA->operationA();
$this->subSystemB->operationB();
$this->subSystemC->operationC();
}
}
// 客户端代码
$facade=new Facade();
$facade->operation();
// 子系统A
class SubSystemA
{
public function operationA()
{
echo “SubSystemA operation.\n”;
}
}
// 子系统B
class SubSystemB
{
public function operationB()
{
echo “SubSystemB operation.\n”;
}
}
// 子系统C
class SubSystemC
{
public function operationC()
{
echo “SubSystemC operation.\n”;
}
}
// 外观类
class Facade
{
private $subSystemA;
private $subSystemB;
private $subSystemC;
public function __construct()
{
$this->subSystemA=new SubSystemA();
$this->subSystemB=new SubSystemB();
$this->subSystemC=new SubSystemC();
}
public function operation()
{
$this->subSystemA->operationA();
$this->subSystemB->operationB();
$this->subSystemC->operationC();
}
}
// 客户端代码
$facade=new Facade();
$facade->operation();
© 版权声明
文章版权归作者所有,未经允许请勿转载。


