Facadeパターン

2020/10/09 12:43

GoFのFacadeパターンを動画でわかりやすく解説しました。複数のクラスが通信し合うような複雑な処理を、外からシンプル利用したい場合に用いる事ができます。中身の複雑さを利用者に知らせずに「簡易的に呼び出せる一連の処理」として使わせたり、中身の改変を利用者に波及させたくないケースにも利用する事ができるはずです。7分という短い動画です。

Facadeパターンとは

GoFのデザインパターンの一つです。複数のインターフェースに別れた処理をまとめる上位のクラス( Facade Class )を作成するものです。これによって、内部の複数のオブジェクトの関係性を利用者側( Client Class )が意識せずに操作できます。

デザインパターンを使うような観点になると、概念を複数のクラスやインターフェースに分けていくことが増えますが、次第にその複数のクラスを意識して扱うのが苦痛になっていきます。それをマルッと包み込む上位のインターフェースを提供することで中身の多数の概念を意識せずに扱えるようになります。

メリット

  • 複雑になってしまったシステムをわかりやすいシンプルな操作用インターフェースを提供できる
  • Facadeの利用者における使い方は変えずに、中のシステムの設計を柔軟に変えられるようにできる(中のコードを完全に隠匿している場合に有効な考え方)
  • 「よくある処理はこれ」のような単位でFacadeを提供することで似たようなコードが氾濫するのを防ぎます。処理をカスタムしたい場合においてはFacadeの中身の詳細を直接操作して対応する(中のコードを完全に隠匿はしない考え方)

この記事を書いた人

佐藤 正志

サークルアラウンド株式会社 代表取締役