はじめに
この記事は目次的な投稿になります。
-
きっかけ
新卒入社した会社で、主にJavaを中心に開発をしてきました。新しいプロジェクトへ参画した際に、テックリーダーと、メンバーがデザインパターンを通して会話をしているのを見て、「あうんの呼吸」のようなものを感じました。
自分も開発者としてこのコミュニケーションに参加したいと思いデザインパターンを勉強することにしました。 -
ChatGPT
ChatGPTの回答には間違いもあるという前提です。ですが、何よりサンプルコードを気兼ねなく量産させることができること、いくらでも深堀できること、という点で学習ツールとして優れていると感じています。 -
進め方
ChatGPTにおすすめのデザインパターンを相談し、その一覧を順に学習していきます。連載形式で学習したことを投稿することで、アウトプットの練習もできたら、と考えています。
今年の目標が、「Qiitaに最低1回でも投稿する」ことでした。12月になってしまいましたが、目標の達成もかねてまずは1デザインパターンずつ投稿していこうと思います。
環境
以下の環境で、サンプルコードを実際に動かしながら学習します。
- ChatGPT:無料アカウント
- OS:Windows11
- エディタ:VSCode
- JDK:OpenJDK "11.0.11”
ChatGPTに相談
相談内容
Java言語でデザインパターンを学びたいです。
よく使われるものを、簡単なものから徐々にレベルを上げる形で学びたいです。
以下のような内容で授業をしてもらえませんか?
・デザインパターンの名前
・概要の説明
・ユースケースや、例え話(こんなときに利用する)
・サンプルコード
まずは上記内容に即した対象となるデザインパターンの一覧を示せますか?
ChatGPTの回答
Javaで学ぶおすすめのデザインパターン一覧(難易度順)
【初級編】基礎から学べるシンプルなパターン
Singleton(シングルトンパターン)
Factory Method(ファクトリーメソッドパターン)
Builder(ビルダーパターン)
Prototype(プロトタイプパターン)
Adapter(アダプタパターン)【中級編】少し複雑なパターンで応用力をつける
Observer(オブザーバーパターン)
Decorator(デコレータパターン)
Strategy(ストラテジーパターン)
Command(コマンドパターン)
Facade(ファサードパターン)【上級編】システム全体を考慮するパターン
Composite(コンポジットパターン)
Proxy(プロキシパターン)
Mediator(メディエータパターン)
State(ステートパターン)
Visitor(ビジターパターン)次に、これらのパターンを1つずつ学ぶ形で進めますが、まずSingletonパターンから始めましょうか?
ChatGPT先生はもうやる気十分。頑張ろう!
デザインパターン
デザインパターンごとの投稿を、リンクしていきます。
1. シングルトンパターン