外観モードの説明
注:外観モードは、複雑なサブシステムまたはプログラム構成によって提供される高レベルのインターフェイスインターフェイスであり、クライアントを使用して基礎となるプログラムまたはシステムインターフェイスに簡単にアクセスできます。
外観モードは、よく遭遇するパターンです。しばしば関与する関数には、いくつかのサブインターフェイスまたはサブシステムが含まれる場合がありますが、私たちの特定の関数は、これを1つまたは複数の複数のサブインターフェイスの順序でカプセル化することのみを必要とする場合があります。ビジネス関数がサブインターフェイスまたはサブシステムに直接対応する場合、開発者は内部コンテンツをかなり理解する必要がある場合があります。ビジネスプロセスがどのように進むか、その順序などを理解する必要があるかもしれません。これには、開発者がビジネスを理解し、クライアントプログラミングを非常に複雑にする必要があります。
ここには、カプセル化するために使用する方法を具体的に提供するレイヤーまたはクラスがある場合、クライアント関数はこの中間層クラスと対話する必要があり、中間層クラスの対応するメソッドには、ビジネス組織のカプセル化を理解する関連開発者が非常に簡単になります。プログラマーは、自分の関数に必要な方法のみを知る必要があり、内部ロジックを知る必要はありません。
この中間層クラスは、外観クラスと呼ばれるものであり、これが外観パターンのアイデアです。
シーンの例:
1>。たとえば、マスタースイッチ、このマスタースイッチは、家のドアのライト、ホールのいくつかのライトを制御し、家のテレビ、冷蔵庫などの電源を制御できます。マスタースイッチのボタンがどのように出てくるか、または関連する電化製品にどのように押されるかを知る必要はありません。とにかく、あなたはそれを直接呼びます。
これらのライト、テレビなどは、使用したいインターフェイスと小さなシステムです。このマスタースイッチは私たちの外観であり、直接操作できます。
2>。企業にいくつかの機能部門があることは良いことです。上司が仕事のさまざまな側面の実装を1つずつ実装する必要がある場合、彼は部門に行き、従業員にこのことがどのように行われているかを尋ねます。彼が適切な人に尋ねると、彼はボスに直接答えることができます。この人が責任を負う場合、彼は上司に「ああ、この問題に責任がある人、上司が人に尋ねるために走らなければならない、それはとても面倒だ」と言う。
各機能部門に監督者がいる場合、上司はそれに行って状況を見つけることができます。上司は、担当者がこれをどのように知っているかを気にする必要はありません。彼はただ、1、2、および3つのことの状況を知り、進捗状況に従いたいと思っています。
インスタンスソースコード
次に、2番目のインスタンスシナリオに従ってソースコードを実装します。
1.いくつかの部門の機能:
部門1(ビジネス部門):
コードコピーは次のとおりです。
function businessdept(){
this.manager = 'Manager Chen'; //担当者
}
businessdept.prototype = {
数ヶ月の販売:function(){
console.log(this.manager + 'Say:今月の売上はxxx');
}、
NextPlan:function(){
console.log(this.manager + 'say:次の計画はこのようなものです、xxxx');
}
}
部門2(R&D部門):
コードコピーは次のとおりです。
function rddept(){
this.manager = 'Manager Huang';
}
rddept.prototype = {
進行状況:function(){
console.log(this.manager + 'say:現在のプロジェクトの状況と進捗状況はこのxxx'のようなものです ');
}、
Deptplan:function(){
console.log(this.manager + 'say:次の部門計画はこのxxx'のようなものです ');
}
}
上記は、各部門の監督者が上司に答えなければならない質問です。
次に、上司が尋ねたい質問を整理するための外観カテゴリを確立します。
コードコピーは次のとおりです。
関数facade(){
this.business = new BusinessDept();
this.rddept = new rddept();
}
facade.prototype = {
Deptsituation:function(){
this.business.monthsales(); //セールスマネージャーは最初に言います。
this.rddept.progress();
}、
Deptplan:function(){
this.business.nextplan(); //次の計画を報告します。
this.rddept.deptplan();
}
}
次に、ボスは彼の前にいる2人のマネージャーに電話をかけ、質問を始めました。
コードコピーは次のとおりです。
var facade = new Facade();
console.log( 'ボスは尋ねました:今あなたの部門の状況を紹介しますか?');
facade.deptsituation();
console.log( 'ボスは尋ねました:次は計画とは何ですか?');
facade.deptplan();
その他の指示
外観モードを使用すると、インターフェイスまたはクラスが分離される可能性があるため、クラス間で依存する必要はありません。使用する必要がない場合は、aを含める必要があります。またはBにはAが含まれている必要があります。これは、閉じる修正の原則に違反します。中間層の外観を使用するクラスラッパーは、インターフェイスコールをシンプルにすることができ、サブインターフェイスまたはサブシステムオブジェクトコールを使用すると、より無料で整理されます。
多くの場合、外観モードはプログラミングに表示され、外観モードはアーキテクチャシステムのパターン定義で使用されることがよくあります。当社のシステムは、サードパーティのインターフェイスサービスを使用し、多くの場合、利用可能なビジネスインターフェイスを整理するために外観レイヤーを追加する必要があります。