【GoF】ファサードパターン ~ Facade ~

【1】Facadeパターン

 * 既存のクラスを複数組み合わせて使う手順を、
 「窓口」となるクラス(=Facade)を作って
 シンプルに利用できるようにするパターン
 =>このパターンを作った意義は、すごく良く分かる。
  よく使うパターンは、色々なクラスを組み合わせるよりも、
  グループ化していてUtilみたいに使える方がいいもん、実際。
* Facade:見かけ(Franch)
* 下の図が一番分かりやすい

http://itpro.nikkeibp.co.jp/article/COLUMN/20051216/226402/img1.jpg

【2】目的・利点

* 複雑になったクラス同士の依存関係を整理し、
 実行順序を整え、機能を利用しやすい形にする
* サブシステム内の複雑なクラス同士の関係を、
 利用者側から隠して、利用しやすくする。
* Facadeクラスが正しい順番で確実にクラス群を扱ってくれるので、
 開発者によるケアレスなバグを未然に防げる

【3】適用例

* Facade
 => 指定された条件で SQL 文を作って、
  DataBase に投げて、結果セットを吐き出す部分
* Facadeを使う側 => それを使って画面に表示

参考資料

http://itpro.nikkeibp.co.jp/article/COLUMN/20051216/226402/
http://d.hatena.ne.jp/zecl/20070408/p1
http://msyi303.blog130.fc2.com/blog-entry-33.html
http://naoko.wankuma.com/designpatterns/designpatterns_0015_facade.html

関連記事

デザインパターンの分類 ~目次~
https://dk521123.hatenablog.com/entry/2014/01/29/222538
Scala ~ Logging / SLF4J ~
https://dk521123.hatenablog.com/entry/2023/06/27/230840