見出し画像

🛠Singletonパターン世界系で唯我独尊。 getInstanceがついている。インスタンスとオブジェクトは基本言葉の違いだけ。

シングルトンパターンは、クラスのインスタンス化を1つの「シングル」インスタンスに制限するソフトウェアデザインパターンである。でもなぜ?

Singletonパターン

いくつかのクラスでは、正確に1つのインスタンスを持つことが重要です。システムには多くのプリンターがありますが、プリンター・スプーラーは1つだけであるべきです。ファイルシステムとウィンドウ・マネージャーは1つだけであるべきです。

https://amzn.to/3Pzf5WL

確かに一つしかないと便利な局面がある、つまりこれは、「一つしか作れないように禁止する」措置だ、こんなふうに。

この世にプリンタースプーラーはただ1つ

2回GETインスタンスしてるけど実体は同じことに注目

オブジェクトorインスタンス? 同じ意味です

形式的には、「インスタンス」は「オブジェクト」と同義であり、それぞれ特定の値(実現物)であり、これらをインスタンスオブジェクトと呼ぶこともある。「インスタンス」は、オブジェクトの明確な同一性を強調する。

https://en.wikipedia.org/wiki/Instance_(computer_science)

getInstanceという名にこだわる

多くのライブラリが(factoryMedthodのエイリアスとして?)getInstanceというメソッドを使っている。

ソースの書き振りから考えるシングルトンの判別方法

  • メソッドの名前がgetInstance(たいてい)

  • 戻り値がオブジェクト(インスタンス)

  • 初回の呼び出しだけ、オブジェクトの生成をして、あとは内容をキープして使い回ししているようなコード

ここです、奥さん、ここ

getInstanceはメモ化といえばメモ化だ!(ほんまか)

厳格なひとはシングルトンにイミュータブルを求めるッッ!!

the と a の違い theがシングルトン


シングルトンパターンは、特定のクラスのインスタンスがプログラム内で一つしか存在しないことを保証するデザインパターンです。直接的に数学的な式で表現することは難しいですが、その制約を表す論理的な式や概念的な記述は可能です。

シングルトンパターンの基本的な特性は、クラスが自身の唯一のインスタンスを生成し、それに対するグローバルなアクセスポイントを提供することです。この振る舞いは、次のような概念的な記述で表せます:




Sure, here’s the English prompt I used for the illustration: "Create a monochrome, highly minimalistic, and flat design of a Jizo statue character that represents the singleton pattern. The character should be composed of basic geometric shapes, embodying a two-dimensional aesthetic. Integrate the word 'singleton' as a clear logo within the character design. To maintain the theme of 'only one' as implied by the singleton pattern, subtly emphasize the gesture of one finger, possibly raised or pointed, within the monochromatic palette."


お願い致します