はじめに
Javaのデザインパターンを勉強する際に参考にしているサイトはいくつかありましたが、実際にプロジェクト階層になっていて、ソースが確認しやすい方法がなかなか見つからず悩んでいました。
しかしGitHubを探しているうちに、種類豊富なデザインパターンと、それぞれをわかりやすい表現で解説している素晴らしいプロジェクトを見つけました。今回はそのプロジェクトをご紹介します。
※GitHub全体に言えることですが、リポジトリをクローン・ダウンロードする際は自己責任でお願いします。
URL
https://github.com/iluwatar/java-design-patterns
こちらのリポジトリには、様々な種類のデザインパターンがプロジェクト単位で整理されており、読みやすく理解しやすい構造になっています。
解説は各READMEに記載されています。
一例:abstract-factory
パターン
- 王国(Kingdom)に例えて、種族(エルフ、オーク)ごとに城、王、軍隊などのオブジェクト群が一貫して表現されています。
- 拡張性のある設計になっており、新しい種族を追加する際にも既存コードの変更は最小限で済む点など、非常に実践的な内容となっています。
関連パターンの記載
各デザインパターンの説明ページでは、関連する他のデザインパターンへのリンクも記載されています。
これにより、似たようなパターンや組み合わせて使うべきパターンをすぐに確認できるため、学習効率が非常に高まります。
終わりに
デザインパターンはどの設計にも必ずしも必要なわけではありませんが、それぞれのパターンを理解しておくことで、状況に応じて最適な選択をすることができます。
オブジェクト指向の理解を深めるためにも、また頭の整理や引き出しを増やす意味でも、このGitHubプロジェクトは非常に参考になると思います。
ぜひ一度覗いてみてはいかがでしょうか?