このリポジトリでは、代表的なデザインパターンをJavaで実装したサンプルコードをまとめています。各ディレクトリにはパターンごとにMainクラスがあり、実行することで具体的な動作を確認できます。学習や復習用のリファレンスとして活用してください。
- Adapter パターン
- 既存クラスのインタフェースを別のインタフェースに適合させるためのパターン。
BannerクラスをPrintインタフェースに合わせるPrintBannerを例として実装しています。
- 既存クラスのインタフェースを別のインタフェースに適合させるためのパターン。
- Factory Method パターン
- インスタンス生成処理をサブクラスに任せることで、生成される具体的なオブジェクトを変更可能にするパターン。
Factoryクラスを継承したIDCardFactoryがIDCardを生成します。
- インスタンス生成処理をサブクラスに任せることで、生成される具体的なオブジェクトを変更可能にするパターン。
- Template Method パターン
- 処理の骨組みをスーパークラスで定義し、詳細な処理はサブクラスに任せるパターン。
AbstractDisplayのdisplay()メソッドがアルゴリズムを定義し、CharDisplayとStringDisplayが具体的な手順を実装しています。
- 処理の骨組みをスーパークラスで定義し、詳細な処理はサブクラスに任せるパターン。
- Iterator パターン
- 集合体の要素を順に取り出す仕組みを提供するパターン。
BookShelfからIteratorを取得し、Bookオブジェクトを順に取り出す例を示します。
- 集合体の要素を順に取り出す仕組みを提供するパターン。
※ StrategyPattern ディレクトリは将来の実装予定のため、現在はサンプルコードが入っていません。
各パターンの src ディレクトリで以下のようにコンパイルして実行できます。
javac *.java
java Main実行結果を通じて、各デザインパターンの役割や効果を体感してください。