ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でシンプルでクリーンなシングルトン パターンを実装するにはどうすればよいですか?

JavaScript でシンプルでクリーンなシングルトン パターンを実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-07 09:45:16181ブラウズ

How Can I Implement a Simple and Clean Singleton Pattern in JavaScript?

JavaScript のシングルトン パターン: シンプルさとクリーンさの実現

JavaScript では、シングルトン パターンの実装はさまざまな方法で実現できますが、何が現状なのかシンプルさと清潔感の追求です。これらの性質を具体化するアプローチの 1 つは、以下に示すように、オブジェクト リテラルを直接作成することです。

var myInstance = {
  method1: function () {},
  method2: function () {}
};

このメソッドは、オブジェクト リテラルを通じてパブリック インターフェイスを確立し、そのメンバーがコードの他の部分からアクセスできるようにします。

ただし、プライベート メンバーが必要な場合は、モジュール パターンが一般的なソリューションとして浮上します。

var myInstance = (function() {
  var privateVar = '';

  function privateMethod () {}

  return { // public interface
    publicMethod1: function () {},
    publicMethod2: function () {}
  };
})();

モジュール パターンクロージャを活用して、シングルトン インスタンス内のプライベート メンバーをカプセル化します。

変更を防止し、不変性を確保するには、ES5 Object.freeze メソッドを利用できます。

Object.freeze(myInstance);

このアクションにより、変更がシングルトン オブジェクトの構造または値は拒否されます。

ES6 では、ES モジュールは、 singletons:

// my-singleton.js
const somePrivateState = []

function privateFn () {}

export default {
  method1() {},
  method2() {}
}

モジュール スコープには、パブリック メソッドとプライベート変数の両方が便利に格納されます。シングルトンを他のモジュールにインポートするのは単純な作業のままです。

import myInstance from './my-singleton.js'

これらのアプローチを採用することで、JavaScript コードにシングルトン パターンの多用途性とシンプルさを与え、共有リソースの制御されたアクセスと管理を可能にします。

以上がJavaScript でシンプルでクリーンなシングルトン パターンを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。