javaでのAbstract Factoryパターン

Abstract FactoryパターンはFactory Methodパターンを発展させたもので、生成するオブジェクトの組み合わせを間違えないために、1つのFactoryクラスに複数のオブジェクトの生成処理を実装するようにしたものです。

今回は、RPGのキャラクター作成を模したサンプルコードを作成してみました。
キャラクターの職業毎に、職業を示すオブジェクトとスキルを示すオブジェクトを生成します。
両オブジェクトの組み合わせ方を間違えないように、Abstract Factoryパターンにより組み合わせ方を限定しています。

【サンプルコード】

・AbstractJob.java

・WarriorJob.java

・MagicianJob.java

・AbstractSkill.java

・WarriorSkill.java

・MagicianSkill.java

・AbstractJobFactory.java

・WarriorFactory.java

・MagicianFactory.java

・CreateJobMain.java

【実行結果】


いかがでしたでしょうか?

デザインパターンの勉強をしていて、個人的に一番わかりにくいと思ったのは今回紹介したAbstract Factoryパターンです。
このデザインパターンは「複数のオブジェクトを組み合わせる場合に、その組み合わせ方を間違えないようにする」という意図を持ったデザインパターンなのですが、「Abstract Factory(抽象的な工場)」という名前からこの意図を読み取るのは難しいと思いますし、クラス図やサンプルコードを眺めても複雑で意図を理解するのは難しいと思います。
今回の記事で、その意図が伝われば幸いです。

まだ紹介していないデザインパターンもありますので、これからも少しずつ紹介していきたいと思います!

カテゴリーjava

コメントを残す

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

CAPTCHA