ホームページ >バックエンド開発 >PHPチュートリアル >PHPデザインパターンのFacade(外観モード)入門
サブシステム内の一連のインターフェースに一貫したインターフェースを提供し、このサブシステムを使いやすくするための高レベルのインターフェースを定義します
パターン定義: 外観パターン(ファサードパターン): 外部通信サブシステムとの連携は、統一された外観 オブジェクト を通じて実行される必要があり、サブシステム内の一連のインターフェイスに一貫したインターフェイスを提供します。これにより、このサブシステムが使いやすくなります。外観モードはファサード モードとも呼ばれ、オブジェクト構造モードです。
モード構造:
アピアランス モードは、クライアントが 1 つのことを完了するために、より複雑なシステムを簡単な方法で呼び出すことができるようにするものです。
外観モード。ファサード モードとも呼ばれます。これは主に、複数のサブシステム間の中間層として使用されます。ユーザーは Facade オブジェクトを通じて直接作業を要求するため、複数のサブシステムを呼び出す必要がなくなります。
外観モードの一般的な例は、多くの株を購入しましたが、時間は限られているということです。追跡が複雑で混乱してしまいました。それで、単純に株式ファンドを購入しました。株式ファンドは外観モデルのファサードオブジェクトのようなもので、サブシステムは株式ファンドが投資する各銘柄です。
コードは次のとおりです:
class car { public function start() { print_r("车子启动"); } public function check_stop() { print_r("刹车检查正常"); } public 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(); $carref->start(); } } //客户端可以简单的去调用。 $car = new car(); $carObj = new carfacade(); $carObj->catgo($car);
コードは次のとおりです:
<?php /** * 外观模式 示例 * * 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得这一子系统更加的容易使用 */ class SubSytem1 { public function Method1() { echo "subsystem1 method1<br/>"; } } class SubSytem2 { public function Method2() { echo "subsystem2 method2<br/>"; } } class SubSytem3 { public function Method3() { echo "subsystem3 method3<br/>"; } } 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<br/>"; $this->_object1->Method1(); $this->_object2->Method2(); } public function MethodB() { echo "Facade MethodB<br/>"; $this->_object2->Method2(); $this->_object3->Method3(); } } // 实例化 $objFacade = new Facade(); $objFacade->MethodA(); $objFacade->MethodB();
以上がPHPデザインパターンのFacade(外観モード)入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。