パターン定義: ファサード パターン: サブシステムとの外部通信は、サブシステム内の一連のインターフェイスに一貫したインターフェイスを提供するために、統合されたファサード オブジェクトを通じて実行する必要があります。このインターフェイスにより、このサブシステムが容易になります。使用します。アピアランスモードはファサードモードとも呼ばれ、オブジェクト構造モードです。
パターン構造:
コードをコピー コードは次のとおりです:
class car {
public function start( ) {
print_r("車の始動");
}
public function check_stop() {
print_r("ブレーキチェックは正常です"); function check_box() {
print_r("燃料タンクが正常かどうかを確認します");
}
public function check_console() {
print_r("インパネが異常かどうかを確認します");
}
}
//facade モード
class carfacade {
public function catgo(car $carref){
$carref->check_stop(); >$carref->check_box();
$carref->check_console();
}
}
//ただ電話するだけです。
$car = 新しい車 ();
$carObj = 新しい carfacade();
コードをコピー
/*** 外観パターンの例
** サブシステム内の一連のインターフェイスに一貫したインターフェイスを提供し、このサブシステムを使いやすくするための高レベルのインターフェイスを定義します
*/
class SubSytem1
{
パブリック関数 Method1()
{
エコー "サブシステム 1 メソッド 1
"
}
}
クラス SubSytem2
{
; public function Method2 ()
{
echo "subsystem2 method2
";
}
}
class SubSytem3
{
public function Method3( )
{
echo "subsystem3 method3
";
}
}
class Facade
{
private $_object1 = null; >プライベート $ _object2 = null;
プライベート $_object3 = null;
パブリック関数 __construct()
{
$this->_object1 = new SubSytem1(); this-> ;_object2 = new SubSytem2();
$this->_object3 = new SubSytem3();
}
public function MethodA() {
echo "Facade MethodA< br/>gt ;";
$this->gt;_object1->Method1();
$this->_object2->Method2();
}
パブリック関数MethodB() {
echo "Facade MethodB
"
$this->_object2->Method2();
$this->_object3->Method3();
}
}
// インスタンス化
$objFacade = new Facade();
$objFacade->MethodA(); ;メソッドB();