また、外観モデルとして知られているファサード・パターン、即ちファサード・パターン、このモードの核となるアイデアは、ファサード・オブジェクトを使用することで、外部クライアント用のサブシステムのグループにアクセスするための統一されたインタフェースを提供し、そのクライアントは、様々なサブシステムと直接相互作用しないであろう、そして私たちは、各サブシステムのファサードオブジェクトと通信しているし、適切な機能サブシステムを使用します。
なお、図ファサードパターンに従うことによって理解することができます。
サブシステム:各サブシステム上で、原則的に独立した存在、相互不干渉あり、彼らがファサードオブジェクトに注力するつもりはありませんが、オブジェクトのファサードを参照しないことが重要です。
ファサード:ファサードオブジェクトは、一緒に組み合わせて、「快適なルックアンドフィール」と外部インタフェースへのアクセスを提供へのさまざまなサブシステムを担当しています。
クライアント:クライアントと様々なサブシステムを通過するには、各サブシステムと直接取引しないように、ファサードオブジェクトをやり取りします。
簡単な例:
クラスのシャンプー: 「」「:サブシステムの様々なシャンプーを購入するには、「」」 DEF __init__ (セルフ): 印刷(「私たちは、シャンプーのすべての種類を販売!」) DEFのpiaorou_500ml(セルフ、番号): 印刷(" これは500ミリリットルISシャンプー総piaorou :! D%「%番号) クラスWashingPowder: 『』 『サブシステム:洗剤の様々な販売』 『』 DEF __init__ (セルフ): 印刷(」我々粉末洗剤のすべての種類を販売!") デフlibai_3kg(自己、番号): 印刷(' これは3キロlibai洗濯粉で合計:!%dの'%の数) クラスの組織: "" " 子系统:卖各种抽纸""" デフ __init__ (自己): プリント(「私たちは、組織のすべての種類を販売!' ) デフjierou_200sheets(自己、番号): 印刷(' これは、200枚の組織である合計:!%dの「%の数) クラスのセールスマン: "" " ファサード:售货员""" デフ __init__ (自己): self.shampoo =シャンプー() self.washing_powder = WashingPowder() self.tissue = 組織() 印刷(' 私はあなたを何を助けることができる?' ) デフsale_for_family(自己): "" " 家庭套餐""" self.shampoo.piaorou_500ml( 1 ) self.washing_powder.libai_3kg( 2 ) self.tissue.jierou_200sheets( 6 ) クラスUncleLi: "" " 客户端:李大爷""" DEF __init__ (自己): 印刷("!何かのバグIが欲しい" ) DEF :buy_for_family(自己) "" " がセールスマンファミリーパッケージから直接買う""" sale_man = )セールスマン( )(sale_man.sale_for_family
他のプログラミングの原則とファサードパターン同様のアイデアも、次を参照できますが、「原則」自体は、状況に応じて柔軟に適用する必要があることに留意すべきであるが、必ずしもそうではない、それを行うには:
原則の最小知識:最低限の知識は、オブジェクト間の相互作用を最小化する必要性を意味するだけでなく、次の点に注意を払う必要があります:
- システムを設計する際に、各オブジェクトを作成するときに、我々は量よりも多くを検討する必要があり、道の下クラスの相互作用を相互に作用します。
- しっかりとお互いに結合された複数のオブジェクトの場合は避けてください。
デメテル:それは、設計基準は、次のものがあります:
- システム内の各ユニットは、可能な他のユニットのように少しを知っています。
- 各ユニットには、唯一の彼らの友人を交換します。
- ユニットは、その操作の対象の内部の詳細を知っているべきではありません。