ずっと勉強が止まっていたデザインパターン「ファサード」の勉強を終わらせました。
ファサードというのは受付の様なものです。
たとえば、クライアントの処理を実装するときに、サブシステム内にたくさんの細かいクラスがある場合、どの関数をどの順番で呼び出すべきかわかりませんよね。
でも、ファサードクラスを一つ作っておいて、その中で呼び出す手順や確認処理まで含めた1つの関数を作成すれば、クライアントは1機能を呼び出すときにその関数を呼び出すだけで済みます。
Carクラスがあり、
・エンジンをかける
・ハンドルを握る
・アクセルを踏む
・シートベルトを付ける
上記のような関数が実装されているとしましょう。
ここで、運転者がまずやらなければいけないのは、シートベルトを着けて、エンジンをかけることです。
しかし手順がわからなければ、さきにアクセルを踏んでしまうかもしれません。また後方確認なドも行わないといけません。
こういう手順間違いや確認漏れが発生しないために、ファサードは使用すべき関数や確認を1つの関数に手順として実装します。
こうすることで、手順を間違えることなく、クライアント側でサブシステムを呼び出すときに間違った呼び出し方をすることを防げます。
コメント