0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScriptでデザインパターン〜シングルトン

Last updated at Posted at 2023-02-04

デザインパターンとは

 デザインパターンは、大規模なソフトウェア開発の課題に対する一般的な解決策を提供するものです。これらのパターンは、特定のタイプの問題に対してよく使われる方法をまとめたものです。
 例えば、本を作ることと同じように、ソフトウェア開発も複雑な作業です。そのため、作り方を整理することが重要です。「本を作るためのレシピ」のようなものがデザインパターンです。これらのレシピに従っていけば、正しい作り方を覚えることができます。
 デザインパターンは、ソフトウェア開発においても同じような問題を解決するためのレシピのようなものです。これらのパターンを知っていることで、効率的かつ正確なソフトウェア開発を行うことができます。

シングルトン

 シングルトンパターンは、ある特定のクラスのインスタンスがアプリケーション内で最大1つしか生成されないことを保証する設計パターンです。これにより、クラスのインスタンスを共有して、全体のコード内で同じ状態を共有することができます。

 Javascriptにはクラスがなく、オブジェクトしかないため、新しく作成されたオブジェクトはシングルトンになります。

singleton.js
var a = {
  word: 'あいう'
}

var b = {
  word: 'あいう'
}

console.log(a === b) // false

このようにkey-valueが同じオブジェクトを作成しても、お互いを比較した時にFalseとなり
異なるオブジェクトとなります。

 そのためJavaScriptで実装する場合は、コンストラクタ関数を使用してクラスを定義し、そのクラスのインスタンスを生成するためにnew演算子を使用する代わりに、単一のインスタンスを保持するプロパティを持った単独のオブジェクトを使用することが一般的です。

singleton.js
class Sample {
  constructor () {
    if (Sample.instance) {
      return Sample.instance
    }
    Sample.instance = this
  }
}
const c = new Sample()
const d = new Sample()

console.log(c == d) // true
console.log(c === d) // true
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?