デザインパターンスキンモード - 概要
前回の記事では、我々は説明するホームシアタープロジェクトの実現モデルの外観をシミュレートします。この記事では、我々は、外観モードをまとめます。
出典:凱歌のJava(kaigejava)本論文では、直列に凱歌「23デザインモード」で構成されています。
カイコーは突然、この場合は不適切である、ホームシアターを感じます。別の平野。銀行のお金へのアクセス。この場合、我々はそれに遭遇しました。
私たちが銀行に行くの後、各ウィンドウには、あなたのための美しいサービスを提供しています。お金への私たちのアクセス時に、あなたはそれだけで通信し、Windowsする必要があります。我々はにIDcard、その後、あなたがお金を取得する必要がありますパスワードを入力します。のは、このプロセスを分析してみましょう。
ユーザーは、銀行システム、外部の人材(システム)にお金を相対的にアクセスし、窓アテンダントが外国銀行が提供している対話型のウィンドウです。その後、我々は、IDCard、銀行カードを取得する必要があり、パスワードを入力し、ウェイターは私たちに領収書を印刷するウィンドウを与える、引き出しは、(撤退の大きな量は、その後だった場合)リーダーシップを記入してくださいので、私たちはウェイター以上に対処するための操作画面上。最後に、我々は現金預金をするかの資格情報を持っている必要があり、私たちに返却する必要があります。
私たちは役割を分析します:
外部コールシステム(またはクライアント):リモートコントロールを使用してや劇場が銀行に行く必要がある場合は、私たちにお金へのアクセスを与えるために
複雑なシステム:な劇場などや銀行システムに関連していました
複雑なシステムでは、内部サブシステム:
銀行例:検出器、プリンタ、セーフティーボックス、銀行のリーダーシップ。
なぜ我々はファサードパターンを使用する必要がありますか?どのような問題を解決することができますか?
複雑なシステムにアクセスするための内部接続の複雑さを軽減。
この文を理解するには?
窓なしのサービスが存在しない場合、我々はお金を自分でカウントする必要がある、お金を引き出すために銀行に行き、あなた自身のプリンタで、自分自身がそうサインオンとする銀行をリードしました。それはあまりにも面倒ではありません。私たちが必要と付随する為替ので、窓アテンダントでは、他には黙っていません。
二つのパッケージ間の層を追加して、クライアントとシステムの複雑さとの間でやりとりする場合、この層の役割は順序の依存関係などを呼び出すことです。そのため、私たちはここで重要なコードパターンの外観を得ることができます私たちは、うまく処理されています。
利点:
(あなたがお金を引き出すために銀行に行く場合は、安全な〜からこの感覚を得るためにあなた自身のお金を稼ぐと思う)システムのセキュリティを向上させる、システムの柔軟性を向上させ、システム間の相互依存を減らします。
クライアントと連結されていない複雑なシステム、及びカップリングを低減するために、外観系カップリングを使用してシステム間。
現像防止の低レベルに関連するリスク
短所:
開閉は継承書き換えが不適切である、あなたは物事を変更する必要がある場合、我々は、外部に手間が窓を変更する必要があり、ソフトウェア設計の原則を満たしていません。
使用シナリオ:
为一个复杂的模块或者是子系统提供外界访问的模块;
子系统相对独立的
外观模式的目的:
为子系统中的一组接口或者一组功能提供一个一致的接口(界面),外管模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
本文来源:凯哥Java(kaigejava)
凯哥个人博客:www.kaigejava.com
本文地址:http://kaigejava.com/gwjeesns/article/edit/567
应用实例:
如果家庭影院以及银行取钱例子还不好理解。那么最简单的,JAVA中三层开发模式(MVC)就是典型的外观模式。这下是不是就好理解了.