デザインパターン プログラミング

Facadeパターンの使い道をコードとクラス図で説明します。

投稿日:2020年6月14日 更新日:

Facadeパターンはどんな役に立つか?

簡単にいうと、複数の処理のまとめ役。
なので、依頼1つでいろんな仕事をやってくれる点で役に立つ。

Facadeパターンの要件

  • Facadeクラスはあくまでサブシステム内部に仕事を投げるだけで複雑な実装は持たない。
  • Facadeクラスをサブシステム自体が利用する事はない。
  • Facadeパターンはサブシステムの直接使用を妨げない。

クラス図

Facadeパターンのクラス図


引用元:Wiki – Facadeパターン

今回説明するコードのクラス図


Librarian(Facade)がBookListとLendingList(サブシステム)を持っているのは立場上の仕様であり、窓口になって利用するという実装自体に変わりはありません。

クラス図の各役割

Facade:Librarianクラス
サブシステム:BookListクラス、LendingListクラス
クライアント:Visitorクラス

各クラスの関わり

  • Librarian(司書)は本を探す役割を引き受けることができる。
  • Visitor(利用者)はLibrarianに本を探すことを依頼できるし、自分で探すこともできる。
  • BookList(貯蔵本台帳)とLendingList(貸出帳)は、LibrarianまたはVisitorから利用される。

コード

Librarian.java

BookList.java

LendingList.java

Visitor.java

Main.java

※山田くん、木下くんのtargetBookNameを変更して、動作を確認してみてください。

Github

Facade Pattern – Librarian

使いどころ

複数の処理を呼び出す一連のコードを色んな箇所に書き始めたら、
Facadeパターンを使うことを検討してみて下さい。

ただし要件にある通り、複雑なロジックを含んではならないため、
あくまで、処理の束ね役に徹することが求めれます。

参考

Wiki – Facadeパターン

コードは以下を基に改造しました。
TECH SCORE – Facadeパターン

言わずと知れたデザインパターンの良書(全23パターンが網羅されている)
書籍 – 増補改訂版 Java言語で学ぶデザインパターン入門

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-デザインパターン, プログラミング
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【SpringBoot入門】#6~ 登録機能の実装

概要 画面から送信されたデータをDBに登録する機能を実装します。 入力データはバリデーションによってチェックされることとします。 サーバサイドは以下のように各層で処理分けされます。 <Contorol …

【SpringBoot入門】#3~ Index画面の作成

このチュートリアルでは、簡易な書籍管理システムを作っていきます。 まず最初にIndex画面を作成していきます。 HTML作成 以下の配下にindex.htmlを作成します。 配置先:プロジェクト(ここ …

【SpringSecurity】#1~ ログイン画面の実装(認証)

概要 SpringSecurityを導入してユーザ認証機能を実現します。 まずはログイン認証機能が使えるようになることを目標にしていますので、 本記事で解説する構成は最小限にとどめています。   準備 …

【Java入門】Functionの使い方まとめ

概要 Function <T, R> apply(T)を関数メソッドに持つ関数型インタフェースです。 1つの引数を受け取って結果(R)を返します。   基本的な使い方 Functionイン …

【Java】オブジェクト指向の練習題材(会計オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは3つのオブジェクトを作成していきます。 – 会計オブジェクト:会計金額の算出 – 請求書オブ …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。