ホームページ > バックエンド開発 > PHPチュートリアル > headfirst デザイン パターン PHP デザイン パターン ファサード外観パターン

headfirst デザイン パターン PHP デザイン パターン ファサード外観パターン

WBOY
リリース: 2016-07-29 08:45:47
オリジナル
1091 人が閲覧しました

パターン定義: ファサード パターン: サブシステムとの外部通信は、サブシステム内の一連のインターフェイスに一貫したインターフェイスを提供するために、統合されたファサード オブジェクトを通じて実行する必要があります。このインターフェイスにより、このサブシステムが容易になります。使用します。アピアランスモードはファサードモードとも呼ばれ、オブジェクト構造モードです。
モード構造:

 php设计模式 Facade外观模式

外観モードは、クライアントが 1 つのことを完了するために、より複雑なシステムを簡単な方法で呼び出すことができるようにするものです。
サブシステム:

コードをコピーします コードは次のとおりです:


class car {
public function start() {
print_r("Car starting")
}
public function check_stop() {
; print_r("ブレーキが正常かどうかを確認します");
}
public function check_box() {
print_r("燃料タンクが正常かどうかを確認します");
}
public function check_console() {
print_r("ダッシュボードが異常かどうかを確認します");
}
}
//ファサード モード
class carfacade {
public function catgo(car $carref){
$carref->check_stop();
$carref->check_box();
$carref- >check_console();
$ carref->start();
}
}
//クライアントは単にそれを呼び出すことができます。
$car = new car();
$carObj = new carfacade();


コードは次のとおりです:< ;?php

/**

* 外観パターンの例
*
* サブシステム内の一連のインターフェースに一貫したインターフェースを提供し、このサブシステムを使いやすくするための高レベルのインターフェースを定義します
*/
class SubSytem1
{
public function Method1()
{
echo "subsystem1 method1
";
}
}
class SubSytem2
{
public function Method2 ()
{
echo "サブシステム 2 メソッド 2
";
}
}
クラス SubSytem3
{
パブリック関数 Method3()
{
エコー "サブシステム 3 メソッド 3
";
}
クラスファサード
{
private $_object2 = null;
public function __construct()
$this->_object1 = new SubSytem1(); >_object2 = 新しい SubSytem2();
$this->_object3 = 新しい SubSytem3();
public function MethodA() {
echo "Facade MethodA
"; ->メソッド1();
$this->_object2->メソッド2();
パブリック関数MethodB() {
$this->_object2- >Method2 ();
$this->_object3->Method3();
}
//
$objFacade = new Facade();
$objFacade をインスタンス化します。 -> ;メソッドB();
以上、headfirst デザインパターン、PHP デザインパターン、Facade 外観パターンを紹介しました。headfirst デザインパターンの内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート