質問: ### 前提・実現したいこと デザインパターンにおけるシングルトンパターンについて 自分の書き方はシングルトンパターンなのか ### 発生している問題・エラーメッセージ 自分の書いているコードがシングルトンパターンなのかわかりません。シングルトンを意識して書いていたわけではないのですが、インスタンスを一つしか生成しない点ではシングルトンパターンっぽいけど本質とは全然違う気がします。そもそもオブジェクト指向になっているのかも分かりません。 ### 該当のソースコード ``` //A.h class A { //内容A } ``` ``` //B.h class B { //内容B } ``` ``` //C.h class C { //内容C } ``` ``` #include #include< A.h > #include< B.h > #include< C.h > int main(){ A a;//インスタンス B b;//インスタンス C c;//インスタンス /* 処理 */ return 0; } ``` ### 補足情報(言語/FW/ツール等のバージョンなど) 言語はC++。Pythonでも同じような感じで作っています。 シングルトンのように専用のクラスを作ったり、コードとして保証している訳ではありません。それは分かって欲しいです。シングルトンで書かれたコードは見たことがあります。それのコードを回答として貼られても回答になっていないのでご容赦ください。
回答: 回答者からは実際のコードが確認できませんが、例えばclassAを実際に複数生成すると動作が成り立たず、それをあなた自身が分かっていて、それを理解したうえでmain関数を書いているならば、**classAはシングルトンパターンであるべきクラスである**とは言えると思います。 ただし現状ではシングルトンパターンであるとは言えません。**やろうと思えば複数生成できてしまう**からです。 シングルトンパターンとは、複数生成されると困るクラスについて、**クラス側で複数生成されようとした時にも不具合を起こさないように制御すること**がパターンの狙いの本質だと理解してください。 認識の違いの一点として、シングルトンパターンは提示のコードのmain関数に対して合致するものではなく、classA~Cのようなクラス定義に対して合致するものであるという認識が弱いのではないかと予想します。 main関数で一つしか作らないからといってそれはシングルトンパターンとは全く関係がなく、classA~Cのコーディングとして複数生成時の制御をかけるということがシングルトンパターンです。