質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

879閲覧

【C#】staticでインスタンスを作成し、そのインスタンスをメソッドで呼び出せる様にする意味

masahase

総合スコア26

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/06/06 10:11

編集2021/06/06 11:20

下記エントリを見て疑問に思った事を質問させていただきます。
いい感じのUnity用セーブデータ管理クラス

疑問点

・下記の様にstaticでインスタンスを作成し、それを呼び出すメソッドを作成する意味はあるのか
・なるべく時クラス内でインスタンスを作成した方が良いのか

C#

1static DataBank instance = new DataBank(); 2---------------------------------------------- 3public static DataBank Open() 4{ 5  return instance; 6}

C#

1DataBank bank = DataBank.Open();

解釈

staticを利用した方がアプリでDataBankgaが1つのみ生成され為メモリを圧迫しない為の記述だと考えています。他に何かありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/06/06 10:24

Unity 使う人はインスタンスを保持するのを嫌がってこういうコードを書きたがる傾向があります。 省メモリのためではなく、どこからでも呼び出せるようにするためです。
BeatStar

2021/06/06 10:26

URLはURLを貼り付けるボタンがあるのでそれを使いましょう。
masahase

2021/06/06 11:22

追記ありがとうございます
Zuishin

2021/06/06 12:12

私が回答しなかったのは、「そんなもの書いた人に聞け」というのが最も的を射た回答になるであろうからです。 コメント欄があるんだから聞けばいいと思います。 他の人の言うことは全て推量でしかありません。 シングルトンという回答がついていますが、複数のインスタンスが作れるようになっているので、シングルトンとは違います。
masahase

2021/06/06 14:37

qiitaコメント書けるんですね!知りませんでした。エントリをよく見るとシングルトンとして書いている様なので、シングルトンで無いなら誤植かもしれません。丁度良いコメントが書かれていたのでその回答を待ちたいと思います。
guest

回答1

0

ベストアンサー

単純にデザインパターンSingletonパターンを適用してるだけです。

検索すればわかると思いますが、「単一オブジェクトであることを保証する」だけです。

ただし現在ではSingletonパターンはアンチパターンとされています

質問にあるコードの場合はどうか分かりませんが。

投稿2021/06/06 10:32

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masahase

2021/06/06 11:25

これがシングルトンなんですね。アンチパターンとは知りませんでした! 調べると、必要なインスタンスが絶対に1つだけと言う場合以外は使うべきでは無いみたいですね。 よく考えてから使って見ようと思います。ありがとうございました。
BeatStar

2021/06/06 11:40

もしかすると質問にあるURL先は単純に、他の方がコメントしているように、「どこからでも呼び出せるようにしているだけ」の可能性もありますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問