Les modèles de conception sont des solutions prédéfinies à des problèmes de programmation courants. Ils aident les développeurs à écrire du code plus organisé, maintenable et évolutif. En JavaScript, ces modèles peuvent être largement classés en modèles créatifs, structurels et comportementaux.
Les modèles de création se concentrent sur la création d'objets. Ils garantissent flexibilité et réutilisation lors de l'instanciation d'objets.
Garantit qu'une seule instance d'une classe existe et lui fournit un point d'accès global.
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
Fournit un moyen de créer des objets sans spécifier leur classe exacte.
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 }
Les modèles structurels traitent de la composition et des relations entre les objets, garantissant ainsi que le système est facile à gérer.
Encapsule le code dans une unité autonome exposant uniquement les méthodes nécessaires.
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
Ajoute dynamiquement un comportement supplémentaire aux objets.
function coffee() { return "Coffee"; } function withMilk(coffeeFn) { return `${coffeeFn()} + Milk`; } console.log(withMilk(coffee)); // Coffee + Milk
Les modèles comportementaux se concentrent sur la façon dont les objets communiquent et interagissent.
Permet à un objet (sujet) d'informer plusieurs observateurs des changements dans son état.
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!
Permet d'utiliser plusieurs algorithmes de manière interchangeable.
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
Les modèles de conception sont des outils essentiels pour créer des applications JavaScript robustes et évolutives. Qu'il s'agisse de créer des objets, de gérer des relations ou de coordonner des comportements, ces modèles apportent clarté et orientation pour résoudre les défis complexes du développement logiciel.|
Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!