NodeJSシングルトンモード、アダプターモード、デコレーションモード、オブザーバーモードのまとめ
この記事では、主に NodeJS の設計パターンを紹介し、nodejs のシングルトン モード、アダプター モード、デコレーション モード、オブザーバー モードの概念、原則、具体的な実装テクニックをサンプルの形式で要約および分析します。必要な方は例を参照してください。この記事では
NodeJS の設計パターンについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
1. シングルトン モード
その名前が示すように、シングルトンは、クラスがインスタンスを 1 つだけ持つことを最初に決定します。存在する場合は、それを直接返します。存在しない場合は、インスタンス オブジェクトを作成し、そのインスタンス オブジェクトを静的変数に保存します。これにより、次のリクエストが行われたときに、このオブジェクト インスタンスを直接返すことができます。クラスにはインスタンス オブジェクトが 1 つだけあります。たとえば、学校は建てられたばかりですが、まだ図書館はありません。「ねえ、お兄さん、図書館を建てるのを手伝ってくれませんか?」と尋ねたところ、リーダーはこう言いました。 : 「問題ありません。すぐに構築しますのでお待ちください。」 (インスタンスはまだ作成されていないため、作成してください)。数か月後、図書館が建てられました。同じように図書館に行きたいという奇妙なクラスメートがいたのですが、彼はリーダーにこう頼みました。 「問題ありません! あそこにはすでにビルドされています。そこに行ってもいいですか!」 (インスタンスがすでに存在する場合は、作成されたインスタンスが直接返されます)
/*singleInstance.js*/ var _instance = null;//定义初始化_instance module.exports = function(time){ function Car(time){ this.time = time; } this.getInstance = function(){ if(_instance != null){ return _instance; }else{ return new Car(time); } } }
2 . アダプター パターン
クラスのインターフェースを顧客が望む別のインターフェースに変換すると、アダプター パターンにより、互換性のないインターフェースにより本来連携できないクラスが連携できるようになります。たとえば、シャオミンの父親であるダーミンはお酒を飲むのが大好きですが、飲酒は体に悪いということを見てシャオミンは我慢できず、ある方法を思いつきました。酒瓶に酒を注ぎ、沸騰したお湯に置き換えてください(内容を書き込みます)。 Damingは、それがまだ同じワインボトルであることを見たとき、あまり注意を払わず(インターフェースは変わっていません、中身だけが変わりました)、「ワイン」を一気に飲み干し、とても幸せでした〜 (ここでは、Da Ming の IQ が低いと仮定します...)。したがって、コントローラーは、他の人を傷つけずに自分の目的を達成するための良い方法です
/*target.js*/ module.exports = function(){ this.request = function(){//原接口 console.log('Target::request'); } }
/*adapter.js*/ var util = require('util'); var Target = require('./target.js'); var Adaptee = require('./adaptee.js'); function Adapter(){ Target.call(this); this.request = function(){//重写原接口 var adapteeObj = new Adaptee();//重写的内容 adapteeObj.specialRequest(); } } util.inherits(Adapter, Target);//通过继承原模块, 获得原接口 module.exports = Adapter;
3. 装飾モードを継承できるメソッドを拡張します。基本クラスオブジェクトの機能。たとえば、クリスマスツリーには最初は何もありません。それからエイミーはそれを見て、いくつかの飾りをツリーに掛けました (元の基本クラスを拡張しました) そして、ビリーが通りかかったとき、まだ何かが足りないと感じたので、クリスマス ツリーを引き取り (継承し)、他のものを置きました。装飾が施されています (拡大し続けます)。
/*Base.js*/ module.exports = function(){ this.dosomething = function(){ console.log("Nice to meet u."); } }
/*Decorator.js*/ var util = require("util); var Base = require('./Base'); function Decorator(){ Base.call(this); this.dosomething = function(){ Base.dosomething(); console.log('I am a decorator');//拓展内容 } } util.inherits(Decorator, Base);//继承 module.exports = Decorator;
4. オブザーバーパターン
オブザーバーパターンとは何ですか?たとえば、クラスメートのパピーとベアは、同時にクラスのかわいいウサギに恋をしました。子犬とクマはウサギの一挙手一投足に注意を払い、ウサギが動いたときに初めて、子犬とクマはウサギの「観察者」であり、ウサギは「観察者」であることがわかります。 「観察の対象」。さらに重要なことは、ウサギの動き(特定の関数)が観察者の子犬とクマに同時に通知されるため、観察者も対応するフィードバック(それぞれのコールバック関数)を与えることです
/*被观察者*/ module.exports = function(){ var m_obserSet = [];//观察者列表 var _self = this; this.addObser = function(observer){ m_obserSet.push(observer);//添加观察者 } this.doAction = function(){ console.log("Observable do some action"); _self.notifyAllObeser(); } this.notifyAllObeser = function(){//发生动作 for(var key in m_obserSet){//逐个通知观察者 m_obserSet[key].update();//观察者执行回调 } } }
以上がNodeJSシングルトンモード、アダプターモード、デコレーションモード、オブザーバーモードのまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Node.js は、高いパフォーマンス、スケーラビリティ、クロスプラットフォーム サポート、豊富なエコシステム、開発の容易さなどの機能を備えているため、バックエンド フレームワークとして使用できます。

MySQL データベースに接続するには、次の手順に従う必要があります。 mysql2 ドライバーをインストールします。 mysql2.createConnection() を使用して、ホスト アドレス、ポート、ユーザー名、パスワード、データベース名を含む接続オブジェクトを作成します。 connection.query() を使用してクエリを実行します。最後に connection.end() を使用して接続を終了します。

Node.js インストール ディレクトリには、npm と npm.cmd という 2 つの npm 関連ファイルがあります。違いは次のとおりです。拡張子が異なります。npm は実行可能ファイルで、npm.cmd はコマンド ウィンドウのショートカットです。 Windows ユーザー: npm.cmd はコマンド プロンプトから使用できますが、npm はコマンド ラインからのみ実行できます。互換性: npm.cmd は Windows システムに固有ですが、npm はクロスプラットフォームで使用できます。使用上の推奨事項: Windows ユーザーは npm.cmd を使用し、他のオペレーティング システムは npm を使用します。

Node.js には次のグローバル変数が存在します。 グローバル オブジェクト: グローバル コア モジュール: プロセス、コンソール、require ランタイム環境変数: __dirname、__filename、__line、__column 定数: unknown、null、NaN、Infinity、-Infinity

Node.js と Java の主な違いは、設計と機能です。 イベント駆動型とスレッド駆動型: Node.js はイベント駆動型で、Java はスレッド駆動型です。シングルスレッドとマルチスレッド: Node.js はシングルスレッドのイベント ループを使用し、Java はマルチスレッド アーキテクチャを使用します。ランタイム環境: Node.js は V8 JavaScript エンジン上で実行され、Java は JVM 上で実行されます。構文: Node.js は JavaScript 構文を使用し、Java は Java 構文を使用します。目的: Node.js は I/O 集中型のタスクに適しており、Java は大規模なエンタープライズ アプリケーションに適しています。

はい、Node.js はバックエンド開発言語です。これは、サーバー側のビジネス ロジックの処理、データベース接続の管理、API の提供などのバックエンド開発に使用されます。

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。

Web 開発において Node.js と Java にはそれぞれ長所と短所があり、どちらを選択するかはプロジェクトの要件によって異なります。 Node.js はリアルタイム アプリケーション、迅速な開発、マイクロサービス アーキテクチャに優れており、Java はエンタープライズ グレードのサポート、パフォーマンス、セキュリティに優れています。
