デザイン パターンは、一般的なプログラミングの問題に対する事前に定義された解決策です。これらは、開発者がより組織化され、保守しやすく、スケーラブルなコードを作成するのに役立ちます。 JavaScript では、これらのパターンは、作成、構造、および 行動 パターンに大別できます。
作成パターンはオブジェクトの作成に焦点を当てています。これらにより、オブジェクトをインスタンス化する際の柔軟性と再利用が保証されます。
クラスのインスタンスが 1 つだけ存在することを保証し、そのインスタンスへのグローバル アクセス ポイントを提供します。
class Singleton { constructor() { if (Singleton.instance) return Singleton.instance; Singleton.instance = this; } } const instance1 = new Singleton(); const instance2 = new Singleton(); console.log(instance1 === instance2); // true
正確なクラスを指定せずにオブジェクトを作成する方法を提供します。
class CarFactory { static createCar(type) { switch (type) { case 'sedan': return { type: 'Sedan', wheels: 4 }; case 'suv': return { type: 'SUV', wheels: 4 }; default: return { type: 'Unknown', wheels: 0 }; } } } const car = CarFactory.createCar('suv'); console.log(car); // { type: 'SUV', wheels: 4 }
構造パターンはオブジェクトの構成と関係を扱い、システムの管理を容易にします。
必要なメソッドのみを公開する自己完結型ユニットにコードをカプセル化します。
const calculator = (() => { const add = (a, b) => a + b; const subtract = (a, b) => a - b; return { add, subtract }; })(); console.log(calculator.add(2, 3)); // 5 console.log(calculator.subtract(5, 2)); // 3
追加の動作をオブジェクトに動的に追加します。
function coffee() { return "Coffee"; } function withMilk(coffeeFn) { return `${coffeeFn()} + Milk`; } console.log(withMilk(coffee)); // Coffee + Milk
行動パターンは、オブジェクトがどのように通信し相互作用するかに焦点を当てています。
1 つのオブジェクト (サブジェクト) がその状態の変化を複数のオブザーバーに通知できるようにします。
class Subject { constructor() { this.observers = []; } subscribe(observer) { this.observers.push(observer); } notify(data) { this.observers.forEach(observer => observer(data)); } } const subject = new Subject(); subject.subscribe(data => console.log(`Observer 1: ${data}`)); subject.notify("Event occurred!"); // Observer 1: Event occurred!
複数のアルゴリズムを互換的に使用できるようにします。
class Singleton { constructor() { if (Singleton.instance) return Singleton.instance; Singleton.instance = this; } } const instance1 = new Singleton(); const instance2 = new Singleton(); console.log(instance1 === instance2); // true
デザイン パターンは、堅牢でスケーラブルな JavaScript アプリケーションを作成するために不可欠なツールです。オブジェクトの作成、関係の管理、または動作の調整のいずれであっても、これらのパターンは、ソフトウェア開発における複雑な課題を解決するための明確さと方向性を提供します。|
こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。
以上がJavaScript デザイン パターン: 包括的な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。