複数の言語で読める、無料のプログラミング書籍、コース、チートシート、ポッドキャストを集めた、コミュニティ運営の厳選リスト。
iluwatar/java-design-patterns
古典から現代までのソフトウェアデザインパターンをJavaで実装し、各パターンの解説付きサンプルコードをまとめたコレクションです。
- スター
- 94,802
- フォーク
- 27,346
- 未解決の Issue
- 141
- 最終コミット
- 13 日前
これは何?
このリポジトリでは、多数のソフトウェアデザインパターンをJavaで実装しており、各パターンはサンプルコードを含む独立したモジュールにまとめられています。パターンの適用方法がコメントで説明されているため、手順を追って学べるチュートリアルとして読むことができます。
パターンは名前や、Performance、Gang of Fourなどのタグ、CreationalやBehavioralなどのカテゴリで探せます。また、java-design-patterns.comには、同じ内容を説明やソースへのリンクとともに掲載するWebサイトもあります。
このプロジェクトが掲げる前提は、設計はできるだけシンプルに保ち、実用上の拡張性が必要な場合にのみパターンを導入するというものです。コントリビューションを受け付けており、別バージョンの電子書籍も提供しています。
主な機能
- 01Gang of Fourの古典的なパターンや、Javaで広く使われているその他のパターンを収録しています。
- 02各パターンは独立したモジュールにまとめられており、実行可能なコメント付きサンプルコードが含まれています。
- 03パターンを名前、タグ、カテゴリから探せます。
- 04説明とソースコードへのリンクを掲載した関連Webサイトがあります。
ユースケース
- 実際に動作するJavaのサンプルを読んで、デザインパターンを学ぶ。
- 自分のコードに適用する前に、特定のパターンの実装例を確認する。
- パターンの使い方を扱うソフトウェア設計の面接やコードレビューに備える。
使う前に知っておきたいこと
- メタデータ上のライセンスはNOASSERTIONですが、READMEにはMITと記載されています。再利用する前にライセンスファイルを確認してください。
トピック
よくある質問
- java-design-patterns とは?
- 古典から現代までのソフトウェアデザインパターンをJavaで実装し、各パターンの解説付きサンプルコードをまとめたコレクションです。 このリポジトリでは、多数のソフトウェアデザインパターンをJavaで実装しており、各パターンはサンプルコードを含む独立したモジュールにまとめられています。パターンの適用方法がコメントで説明されているため、手順を追って学べるチュートリアルとして読むことができます。
- java-design-patterns は無料で使えますか?ライセンスは?
- java-design-patterns は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- java-design-patterns は今もメンテナンスされていますか?
- 活発にメンテナンス中。java-design-patterns の最終コミットは 2026年10月8日 です。
- java-design-patterns は何に使えますか?
- 実際に動作するJavaのサンプルを読んで、デザインパターンを学ぶ。 自分のコードに適用する前に、特定のパターンの実装例を確認する。 パターンの使い方を扱うソフトウェア設計の面接やコードレビューに備える。
- java-design-patterns はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/iluwatar/java-design-patterns
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
アプリケーションをゼロから作るチュートリアルを、言語別にまとめた厳選リストです。
日常的なプログラミングのパターンを30秒以内で学べる、短く独立したJavaScriptの記事とコードスニペット集です。
OpenAI APIでよくあるタスクを実行する方法を紹介する、Jupyter notebookのサンプルとガイド集です。
Javaの基礎、並行処理、JVM、エンタープライズ開発、面接対策を扱う、無料でユーモアのある中国語のJava学習ガイド。
C#、Java、JavaScript、Python、Rust、TypeScriptの実践例を通じてModel Context Protocol(MCP)を学べる、無料のオープンソース入門カリキュラム。