[デザインモード]-外観モード

1.アピアランスモードの概要

1.アピアランスモードの概要

ファサードパターンとも呼ばれる外観モード(ファサードパターン)は、構造設計パターンの形式であり、主にシステムの複雑さを隠すために提案されています。=アピアランスモードを実装するシステムは、システムの複雑な内部接続を知る必要はありません。システムは、外部受信用のインターフェイスを提供するだけで済みます。

2.外観モードの使用シナリオ

外観モードは通常、次の3つのシナリオで使用されます。

  1. システムの再構築は困難です。現時点では、既存のコードをアピアランスモードで再利用して、実装の詳細を隠すことができます。
  2. システムは比較的独立しています。
  3. 発信者がインターフェイスロジックに慣れていないリスクを防止します

第二に、ビジネスを通じてモードを話す

1.ビジネスシナリオを提供する

誰もが株取引に精通しているはずですが、何千ものネギのメンバーになることを恐れているため、多くの人が株取引に落胆しています。なぜ一般の人々は彼らがネギになると思うのでしょうか。主な理由は、株式の背後にある論理が非常に複雑であるためです。市場の初めてのインテリジェンスを理解し、業界の背景に精通する必要があります。これは、エネルギーが限られている多くの人々にとって間違いなく頭痛の種です。そのため、この問題を解決するために、多くの金融会社が独自のファンドを立ち上げており、プロのファイナンシャルマネージャーを通じて、株式を理解していない人でも投資できるので、有利なファンドを購入するだけで同じことができます。株式への投資として。これの効果は実際には非常に典型的なファサードモード(外観モード)です。今日のデモを書くために、私はAlipayに行って巨額の投資をし、2つの良い資金を購入しました。

ここに画像の説明を挿入
では、Alipayで資金を購入するビジネスプロセスを簡単に分析してみましょう。

2.ビジネスプロセス分析

ブロガーはファンド投資の初心者でもあるので、この投資プロセスを簡単に要約します。途中でエラーが発生する可能性がありますが、外観モードについての話には影響しません。
ここに画像の説明を挿入

  1. ユーザーはAlipayファンドのページを開き、ファンドを選択し、最後にChina MerchantsBankとChinaEuropeが発行した2つのファンドを選択しました。
  2. Alipayは、ユーザーからの資金購入のリクエストを受け取り、そのリクエストを特定のファンド機関に配布します。
  3. ファンド機関は購入リクエストの処理を完了し、結果をAlipayに返します
  4. Alipayは結果をユーザーにフィードバックします

以下では、コードを使用して徐々に達成します

第三に、外観モデルの実現

1.コードの実装

(1)ファンド商品を作成する

ファンドの抽象クラス

public abstract class Fund {
    
    
	// 开户
	public abstract void openAccount();

	// 认购
	public abstract void subscription();

	// 确认
	public abstract void affrim();

}

中国招商銀行基金

public class ChinaMerchantsFund extends Fund {
    
    

	@Override
	public void openAccount() {
    
    
		System.out.println("招商银行基金账户开户成功");

	}

	@Override
	public void subscription() {
    
    
		System.out.println("招商银行基金认购成功");

	}

	@Override
	public void affrim() {
    
    
		System.out.println("招商银行基金确认成功");

	}

}

ここでいくつかの違いを追加するために、ユーザー情報を評価するプロセスを中国ヨーロッパ基金に追加しました。
中国ヨーロッパ基金

public class CentralEuropeFund extends Fund {
    
    
	@Override
	public void openAccount() {
    
    
		System.out.println("中欧国际基金账户开户成功");

	}

	@Override
	public void subscription() {
    
    
		System.out.println("中欧国际基金认购成功");

	}

	@Override
	public void affrim() {
    
    
		System.out.println("中欧国际基金确认成功");

	}

	public void check() {
    
    
		System.out.println("用户信息校验成功");
	}

}

(2)外観クラスを作成する

public class FundFacade {
    
    

	private ChinaMerchantsFund chinaMerchantsFund;
	private CentralEuropeFund centralEuropeFund;

	public final static String CHINA_MERCHANT = "chinaMerchantsFund";
	public final static String CENTRAL_EUROPE = "centralEuropeFund";

	public void buyFund(String str) {
    
    

		if (CHINA_MERCHANT.equals(str)) {
    
    
			chinaMerchantsFund = new ChinaMerchantsFund();
			chinaMerchantsFund.openAccount();
			chinaMerchantsFund.subscription();
			chinaMerchantsFund.affrim();

		} else if (CENTRAL_EUROPE.equals(str)) {
    
    
			centralEuropeFund = new CentralEuropeFund();
			centralEuropeFund.openAccount();
			centralEuropeFund.check();
			centralEuropeFund.subscription();
			centralEuropeFund.affrim();
		}
	}

}

(3)試験および試験結果

public class AliPay {
    
    
	public static void main(String[] args) {
    
    
		FundFacade fundFacade = new FundFacade();
		fundFacade.buyFund(FundFacade.CHINA_MERCHANT);
	}
}

テスト結果:
ここに画像の説明を挿入
ここでは、単純な外観モデルの実現が完了したことを確認します。

2.実装分析

上記のコードを3つのコンポーネントに簡単に分割できます。

  1. 最初の部分は、すべての詳細の実装を担当するサブシステムです。サブシステムは、オブジェクトまたはシステムにすることができます。彼らがしなければならないことは、ビジネスの特定の詳細を処理することです。
  2. 2番目の部分は、外観クラスからすべてのサブシステムの実装の詳細まで、すべてのサブシステムの外観クラスを維持し、サブシステムの統一されたスケジューリングと保守を担当します。
  3. 3番目の部分はビジネスの呼び出し元です。クライアントと呼ぶことに慣れている人もいます。クライアントがしなければならないことは、外観クラスを呼び出すことによってビジネスロジックを実装することです。

それらの関係は次のとおりです。
ここに画像の説明を挿入

第四に、外観モデルの特徴

1.外観モードの使用シナリオ

外観クラスは、実際には多くの日常的なアプリケーションで使用されています。たとえば、JAVAEE開発で最も一般的に使用されている3層アーキテクチャパターンは、典型的な外観パターンの設計です。もちろん、いくつかのツールを実行している場合、それは実際には典型的な外観モードのアプリケーションです。

2.アピアランスモードの長所と短所

利点:

  1. システム間の相互依存性の低下
  2. システムの柔軟性の向上
  3. システムセキュリティの向上

短所:

  1. 開始と終了の原則に準拠しないでください。関数を拡張するときにコードを変更する必要がある場合があります

これで本日の内容は終わりです。ご不明な点がございましたら、個人的にメッセージをお送りいただくか、コメント欄にメッセージを残していただければ、お早めにお答えいたします。やりがいを感じている友達は、3回連続でワンクリックを覚え、ブロガーに注意を払い、迷子にならないで、売春婦になることを拒否してください〜

おすすめ

転載: blog.csdn.net/xiaoai1994/article/details/113103710