【Java】Facadeパターン

Amazon SES経由でのEメール送信処理を例にして、Facadeパターンを説明する。

Keywords

  • OOP
  • Design Pattern
  • Java
  • SES

Contents

  • 1. Facadeパターンとは
  • 2. Amazon SES経由でのEメール送信処理例
  • 2-1. Facadeパターンを使用していない例
  • 2-2. Facadeパターンを使用した例
  • 3. Facadeパターンのメリット・デメリット
  • 4. 参考資料

Facadeパターンとは

オブジェクト指向における再利用のためのデザインパターンではFacadeパターンを下記のように定義している。

サブシステム内に存在する複数のインターフェースに1つの統一インターフェースを与える。Facadeパターンはサブシステムの利用を容易にするための高レベルインターフェースを定義する。

オブジェクト指向における再利用のためのデザインパターンより

Amazon SES経由でのEメール送信処理例

Facadeパターンを使用している場合とFacadeパターンを使用していない場合のSESでのEメール送信処理を見てみる。

Facadeパターンを使用していない例

JavaでSESを使用する場合、BasicAWSCredentialsクラス、AmazonSimpleEmailServiceクラス、SendEmailRequestクラスを適切に使う必要がある。また、BasicAWSCredentialsでは、AWSの認証情報を入力するなど、単にEメールを送信するだけでもかなりの知識が必要とされる。

Facadeパターンを使用した例

SESで特有な情報は全て、AmazonSESFacadeに集約しているので、クライアントはそれらの情報を知る必要がなく、メール送信のみに集中できる。

Facadeパターンのメリット・デメリット

メリットとしては、複雑なクラス構成や知識をクライアント側で持つ必要がなくなることで、デメリットとしてはクライアント側が知識を持つことがなくなるので、その分クライアント側で制御できる部分が少なくなってしまう。

参考資料