序文: デザインパターンはプログラミングにおいて非常に重要です。 デザイン パターンは、経験豊富なオブジェクト指向ソフトウェア開発者が一般的に採用しているベスト プラクティスを表します。デザイン パターンは、ソフトウェア開発プロセス中にソフトウェア開発者が直面する一般的な問題に対する解決策です。これらのソリューションは、かなりの期間にわたって多数のソフトウェア開発者が試行錯誤した結果です。 現在、デザインパターンを学んでいるのですが、皆さんも一緒に学んでみませんか? 1. デザインパターンとは何ですか?ソフトウェア設計において、特定の問題に対する簡潔かつエレガントな解決策。 これまでの経験を要約し、それを特定のシナリオに合理的に適用することで、実際の問題を解決できます。 2. デザインパターンの5つの設計原則(SOLID)S-単一責任原則
O-オープンクローズ原則
L-リスコフ置換原理
I-インターフェース独立原則
D-依存性は原則につながる
3. デザインパターンはなぜ必要なのでしょうか?読みやすさ
スケーラビリティ
再利用性
信頼性
4. シングルトンパターン定義:ユニークかつグローバルにアクセス可能。クラスにインスタンスが 1 つだけあることを確認し、そのインスタンスへのグローバル アクセス ポイントを提供します。
アプリケーション シナリオ:ログイン ポップアップ ウィンドウなど、キャッシュできるコンテンツ。
次の疑似コードを見てみましょう: const creatLoginLayer = () => { div 要素を document.createElement("div"); div.innerHtml = "ログインフローティングウィンドウ"; div.style.display = "なし"; ドキュメントのbodyに子要素を追加します。 div を返します。 }; document.getElementById("loginBtn").onclick = () => { const loginLayer = creatLoginLayer(); loginLayer.style.display = "ブロック"; };
このロジックには何の問題もありませんが、考えてみてください。これらのコードは、ログイン ボタンがクリックされるたびに実行されます。プロジェクト内にこれを必要とする場所が多数ある場合はどうなるでしょうか。上に挙げた行はほんの数行です。もしそれが何百、何千、あるいは何万もあったらどうなるでしょうか?パフォーマンスが大幅に低下しませんか? このようなときに、シングルトン モードが役立ちます。 シングルトン パターンを使用した後: const getSingle = (fn) => { 結果を出す; 戻り値 (...残り) => { 結果を返します || (result = fn.apply(this.rest)); }; }; const creatLoginLayer = () => { div 要素を document.createElement("div"); div.innerHtml = "ログインフローティングウィンドウ"; div.style.display = "なし"; ドキュメントのbodyに子要素を追加します。 div を返します。 }; シングルログインレイヤーを作成します。 document.getElementById("loginBtn").onclick = () => { const loginLayer = createSingleLoginLayer(); loginLayer.style.display = "ブロック"; }; ご覧のとおり、 これで、 以下もご興味があるかもしれません:
|
>>: MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal
MySQL は、ネットワーク経由だけでなく、名前付きパイプ経由でも接続できます。MySQL への接続...
rpmインストールパッケージを使用してmysqlをオフラインでインストールします。参考までに準備:公...
Linux で FTP サーバーを設定するためのチュートリアルを参照してください https://w...
簡単な説明適切な読者: モバイル開発sqlite3 データを mysql に移行する場合、多くの構文...
発掘紹介: Dig は、Unix ライクなコマンドライン モードで NS レコード、A レコード、M...
1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...
目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...
次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...
CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...
目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...
1: readonly は、このコントロールをロックして、インターフェイス上で変更できないようにしま...
Docker で war をデプロイするには、コンテナを使用する必要があります。ここでは tomca...
パフォーマンス例えば: HTML: <div class="first"&...
monaco-editor-vueの公式ソースコードは次のとおりです。インデックス 'mon...
目次1. JDKをインストールする2. Jenkinsをインストールする3. Jenkinsの設定を...