Module Pattern
javascript
1const Counter = (() => {2 let count = 0;3 return {4 increment: () => ++count,5 getCount: () => count,6 };7})();
Observer
javascript
1class EventEmitter {2 #listeners = new Map();3 on(event, fn) {4 if (!this.#listeners.has(event)) this.#listeners.set(event, []);5 this.#listeners.get(event).push(fn);6 }7 emit(event, ...args) {8 this.#listeners.get(event)?.forEach(fn => fn(...args));9 }10}
Singleton
javascript
1class Database {2 static #instance;3 static getInstance() {4 if (!Database.#instance) Database.#instance = new Database();5 return Database.#instance;6 }7}
Заключение
Паттерны делают код предсказуемым и поддерживаемым.
Изучите вопросы по JavaScript в нашем разделе.