paint-brush
ファサードデザインパターンとは? に@ssukhpinder
599 測定値
599 測定値

ファサードデザインパターンとは?

Sukhpinder Singh4m2023/02/28
Read on Terminal Reader

長すぎる; 読むには

ファサード デザイン パターンは、サブシステムへの単一のエントリ ポイントを提供し、その複雑さをクライアントから隠します。この例では、在庫、支払い、および配送サブシステムへの統一されたインターフェースを提供するファサードを作成できます。この記事では、C# プログラミング言語を使用した Facade の設計パターンについて説明します。
featured image - ファサードデザインパターンとは?
Sukhpinder Singh HackerNoon profile picture
0-item
アプリケーションのサイズと複雑さが増すにつれて、サブシステム間の上下级依存の经营が困難になる可能会性があります。ファサード デザイン パターンは、この上下级功能を簡素化し、サブシステム内の一連のインターフェイスに統一されたインターフェイスを展示します。

使用事例

顧客が的商品を閲覧し、カートに追加して、チェックアウトできるオンライン ショッピング アプリケーションを考えてみましょう。アプリケーションには、在庫、支払い、配货システムなど、他の地方の标准化管理を当担するさまざまなサブシステムがあります。これらのサブシステムには異なるインターフェイスがあり、購入を结束后するために互不に网络通讯する有必要的があります。


問題は、アプリケーションが大きくなるにつれて、サブシステム間のこの数据通信の管理工作が難しくなる也许性があることです。 1 つのサブシステムの変更が他のサブシステムに連鎖的に影響を及ぼし、コードベースが複雑で保手が困難になる也许性があります。


ファサード デザイン パターンを利用して、サブシステム間の互相意义を簡素化できます。ファサード パターンは、サブシステムへの単一のエントリ ポイントを可以给予し、その複雑さをクライアントから隠します。この例では、在庫、支払い、および派送サブシステムへの統一されたインターフェースを可以给予するファサードを制成できます。

前提条件

  • OOPS の概念に関する基本的な知識。
  • プログラミング言語の知識。

この記事では、C# プログラミング言語を食用した Facade の設計パターンについて説明します。

学習目標

  • Facade デザイン パターンを使用したコーディング方法

入門

サブシステムのインターフェースを定義することから始めましょう

public interface IInventorySystem { void Update(int productId, int quantity); bool IsAvailable(int productId, int quantity); } public interface IPaymentSystem { bool Charge(double amount); } public interface IShippingSystem { bool Ship(string address); }


次に、サブシステムを実装できます。
 public class InventorySystem : IInventorySystem { public void Update(int productId, int quantity) { // update inventory } public bool IsAvailable(int productId, int quantity) { // check if inventory is available return true; } } public class PaymentSystem : IPaymentSystem { public bool Charge(double amount) { // charge the customer return true; } } public class ShippingSystem : IShippingSystem { public bool Ship(string address) { // ship the product return true; } }


最後に、これらのサブシステムへの単純なインターフェースを提供了するファサードを弄成できます。
 public class OrderFacade { private IInventorySystem _inventorySystem; private IPaymentSystem _paymentSystem; private IShippingSystem _shippingSystem; public OrderFacade() { _inventorySystem = new InventorySystem(); _paymentSystem = new PaymentSystem(); _shippingSystem = new ShippingSystem(); } public bool PlaceOrder(int productId, int quantity, double amount, string address) { bool success = true; if (_inventorySystem.IsAvailable(productId, quantity)) { _inventorySystem.Update(productId, -quantity); success = success && _paymentSystem.Charge(amount); success = success && _shippingSystem.Ship(address); } else { success = false; } return success; } }


OrderFacadeクラスでは、サブシステムのインスタンスを作成し、製品 ID、数量、金額、および配送先住所を受け取る単純なメソッドPlaceOrder提供します。 PlaceOrder手法では、サブシステムを使用して在庫を確認し、顧客に請求し、製品を出荷します。

ファサード パターンを使用すると、サブシステムの詳細を気にすることなく、クライアント コードでOrderFacadeクラスのインスタンスを作成し、 PlaceOrderメソッドを呼び出すことができます。


 var order = new OrderFacade(); bool success; // place an order success = order.PlaceOrder(productId: 123, quantity: 1, amount: 99.99, address: "123 Main St"); if (success) { Console.WriteLine("Order placed successfully"); } else { Console.WriteLine("Unable to place order"); }


この例では、ファサード パターンを利用して、オンライン ショッピング アプリケーションのサブシステム間の対話を簡素化しました。クライアント コードは、「OrderFacade」クラスとやり取りするだけでよく、在庫、支払い、および配货のサブシステムについて知る有需要はありません。

結論

ファサード デザイン パターンは、サブシステム間の互不能力を簡素化し、サブシステム内の一連のインターフェイスに統一されたインターフェイスを出示します。結合を減らし、大規模で複雑なアプリケーションの单纯性を积极させるのに役立ちます。この記事では、ユース ケースとコード例を用して、C# のファサード デザイン パターンについて説明します。ファサード パターンを用すると、コードベースを簡素化し、单纯と拡張を易于にすることができます。


読んでいただきありがとうございます。この記事を気に入っていただければ幸いです。コメント欄にフィードバックをお寄せください。

私に従ってください

、 、 、 、 、

その他の設計パターン —


바카라사이트 바카라사이트 온라인바카라