Facadeパターン(複数クラスの処理の窓口を作るデザインパターン)をクラス図にまとめる

デザインパターン

Facadeパターン

Facadeパターンは、複数のクラスを使用する処理の窓口を作るデザインパターンです。
自分なりにFacadeパターンをクラス図にまとめてみました。

Facadeパターンのクラス図

Facadeパターンのクラス図

Facadeパターンの解説

Facade(ファサード)は「正面」といった意味がある。複数のクラスを使用した複雑な処理を実行したい場合、
呼び出すたびにその複雑な処理を行うことは手間なので、その複雑な処理を実行するFacadeクラスを作成し、
呼び出す際にはそのFacadeクラスのメソッドを実行すれば、あとはFacadeクラスが複数のクラス群を使用して処理を実行してくれる。

正確かは分からないが、
クラス図ではClientはFacadeを使用しているだけなので依存関係がないので実線、
FacadeのfuncメソッドではSubSystemClass1,2,3の処理に依存するので点線とした。

Facadeパターンをどういう場合に使うか

上記の通りで、複数のクラスを用いた複雑な処理を呼び出す際に、その呼び出しを一度に行えるようにする時に用いる。
例えば、商品情報の取得、変更、ログ出力、メール送信、などが一連の処理となっている場合、それを別のロジックから呼び出したい場合など。

PlantUMLでFacadeパターンのクラス図を記述する

文頭のFacadeパターンのクラス図をPlantUMLで書いたときのソースです。

@startuml Facade Method
class Client{

}
class Facade{
  + func()
}
class SubSystemClass1{

}
class SubSystemClass2{

}
class SubSystemClass3{

}
Client --> Facade : use >
Facade ..> SubSystemClass1 : use >
Facade ..> SubSystemClass2 : use >
Facade ..> SubSystemClass3 : use >
@enduml

参考サイトURL

PHPによるデザインパターン入門 – Façade〜シンプルな唯一の窓口
デザインパターン ~Facade~ – Qiita