Implémenter un modèle d'observateur simple (Observer) à l'aide de JS

Rassembler du sable dans une tour, faire un petit progrès chaque jour


⭐ Introduction de la colonne

Parcours d'entrée front-end : Explorez le monde merveilleux du développement Web. N'oubliez pas de cliquer sur le lien ci-dessus ou à droite pour vous abonner à cette chronique. La géométrie vous emmènera dans un voyage front-end.

Bienvenue dans le voyage d'entrée frontale ! Cette chronique est faite sur mesure pour ceux qui s'intéressent au développement Web et qui viennent d'entrer dans le domaine du front-end. Que vous soyez un novice complet ou un développeur possédant des connaissances de base, vous disposerez ici d'une plateforme d'apprentissage systématique et conviviale. Dans cette rubrique, nous la mettrons à jour quotidiennement sous forme de questions et réponses, vous présentant des points de connaissances front-end sélectionnés et des réponses aux questions fréquemment posées. Grâce au format questions-réponses, nous espérons répondre plus directement aux questions des lecteurs sur la technologie front-end et aider chacun à établir progressivement une base solide. Qu'il s'agisse de HTML, CSS, JavaScript ou de divers frameworks et outils courants, nous expliquerons les concepts d'une manière simple et facile à comprendre, et fournirons des exemples et des exercices pratiques pour consolider ce que vous avez appris. Dans le même temps, nous partagerons également quelques conseils pratiques et bonnes pratiques pour vous aider à mieux comprendre et appliquer diverses technologies dans le développement front-end.

Insérer la description de l'image ici

De plus, nous lancerons également régulièrement des tutoriels de projet pratiques afin que vous puissiez appliquer les connaissances que vous avez acquises au développement réel. Grâce à la pratique de projets réels, vous serez en mesure de mieux comprendre le flux de travail et la méthodologie du développement front-end, et de développer votre propre capacité à résoudre des problèmes et à vous développer de manière indépendante. Nous pensons que ce n'est que par une accumulation et une pratique continues que nous pourrons véritablement maîtriser la technologie de développement front-end. Alors, préparez-vous à relever le défi et lancez-vous courageusement dans ce voyage d’entrée frontale ! Que vous recherchiez un changement de carrière, une amélioration de vos compétences ou la satisfaction de vos intérêts personnels, nous nous engageons à vous fournir les meilleures ressources et le meilleur soutien d'apprentissage. Explorons ensemble le monde merveilleux du développement Web ! Rejoignez le parcours d'entrée front-end et devenez un développeur front-end exceptionnel ! Commençons le voyage front-end


⭐ Observateur manuel

Observer Pattern est un modèle de conception comportemental utilisé pour définir des dépendances un à plusieurs entre des objets, de sorte que lorsque l'état d'un objet change, tous les objets qui en dépendent seront notifiés et automatiquement mis à jour. En JavaScript, le modèle d'observateur est souvent utilisé pour implémenter des modèles de gestion d'événements personnalisés ou d'abonnement/publication de données.

Voici un exemple JavaScript simple d'implémentation du modèle Observer :

// 创建一个观察者(订阅者)对象
class Observer {
    
    
  constructor() {
    
    
    this.observers = [];
  }

  // 添加观察者
  subscribe(callback) {
    
    
    this.observers.push(callback);
  }

  // 移除观察者
  unsubscribe(callback) {
    
    
    this.observers = this.observers.filter(observer => observer !== callback);
  }

  // 通知观察者
  notify(data) {
    
    
    this.observers.forEach(observer => observer(data));
  }
}

// 创建一个主题(被观察者)对象
class Subject {
    
    
  constructor() {
    
    
    this.observers = new Observer();
    this.state = 0;
  }

  // 设置状态并通知观察者
  setState(state) {
    
    
    this.state = state;
    this.observers.notify(this.state);
  }
}

// 创建观察者实例
const observerA = data => console.log(`Observer A: ${
      
      data}`);
const observerB = data => console.log(`Observer B: ${
      
      data}`);
const observerC = data => console.log(`Observer C: ${
      
      data}`);

// 创建主题实例
const subject = new Subject();

// 订阅观察者
subject.observers.subscribe(observerA);
subject.observers.subscribe(observerB);

// 设置主题状态,触发通知
subject.setState(1);

// 取消订阅 observerA
subject.observers.unsubscribe(observerA);

// 再次设置主题状态,触发通知
subject.setState(2);

// 添加一个新观察者
subject.observers.subscribe(observerC);

// 再次设置主题状态,触发通知
subject.setState(3);

Dans l'exemple ci-dessus, nous avons d'abord créé une Observerclasse pour représenter un observateur pouvant s'abonner, se désabonner et recevoir des notifications. Nous avons ensuite créé une Subjectclasse pour représenter le sujet, qui peut définir un état et notifier les observateurs. Lorsque le statut d'un sujet change, tous les observateurs abonnés sont avertis et effectuent les actions correspondantes.

Cet exemple simple de modèle Observer peut être utilisé pour créer un système de gestion d’événements personnalisé ou implémenter un mécanisme de publication/abonnement pour les données de votre application. Le modèle Observer est un modèle de conception courant qui permet de réduire le couplage entre les composants et rend le code plus facile à maintenir et à étendre.


⭐Écrivez à la fin

Cette rubrique convient à un large éventail de lecteurs et convient aux débutants en front-end ; ou à ceux qui n'ont pas appris le front-end et sont intéressés par le front-end, ou aux étudiants en back-end qui souhaitent mieux se montrer et se développer. quelques points de connaissances front-end pendant le processus d'entretien, donc si vous avez les bases du front-end et suivez cette rubrique, cela peut également vous aider dans une large mesure à trouver et à combler les lacunes. sortie, s'il y a des défauts dans l'article, vous pouvez me contacter via le côté gauche de la page d'accueil. , avançons ensemble, et en même temps, je recommande également plusieurs chroniques à tout le monde. Les partenaires intéressés peuvent s'abonner : De plus aux colonnes ci-dessous, vous pouvez également vous rendre sur ma page d'accueil pour voir d'autres colonnes ;

Jeux front-end (gratuits) Cette rubrique vous emmènera dans un monde plein de créativité et de plaisir. En utilisant les connaissances de base de HTML, CSS et JavaScript, nous construirons ensemble divers jeux de pages intéressants. Que vous soyez débutant ou que vous ayez une certaine expérience en développement front-end, cette chronique est faite pour vous. Nous commencerons par les bases et vous guiderons à travers les compétences dont vous avez besoin pour créer un jeu de pages. A travers des cas pratiques et des exercices, vous apprendrez à utiliser HTML pour construire la structure des pages, à utiliser CSS pour embellir l'interface du jeu et à utiliser JavaScript pour ajouter des effets interactifs et dynamiques au jeu. Dans cette colonne, nous aborderons différents types de mini-jeux, notamment les jeux de labyrinthe, l'arkanoïde, le serpent, le dragueur de mines, la calculatrice, les guerres d'avions, le tic tac toe, les puzzles, les labyrinthes et bien plus encore. Chaque projet vous guide tout au long du processus de construction en étapes concises et claires, avec des explications détaillées et des exemples de code. Dans le même temps, nous partagerons également quelques conseils d’optimisation et bonnes pratiques pour vous aider à améliorer les performances des pages et l’expérience utilisateur. Que vous recherchiez un projet intéressant pour exercer vos compétences front-end, ou que vous soyez intéressé par le développement de jeux Web, la rubrique petits jeux front-end sera votre meilleur choix. Cliquez pour vous abonner à la rubrique des jeux front-end

Insérer la description de l'image ici

Tutoriel Transparent Vue3 [De zéro à un] (Payant) Bienvenue dans le didacticiel Transparent Vue3 ! Cette chronique vise à fournir à chacun des connaissances techniques complètes liées à Vue3. Si vous avez une certaine expérience de Vue2, cette colonne peut vous aider à maîtriser les concepts de base et l'utilisation de Vue3. Nous partirons de zéro et vous guiderons étape par étape pour créer une application Vue complète. A travers des cas pratiques et des exercices, vous apprendrez à utiliser la syntaxe des modèles de Vue3, le développement de composants, la gestion des états, le routage et d'autres fonctions. Nous présenterons également certaines fonctionnalités avancées, telles que l'API Composition et Teleport, pour vous aider à mieux comprendre et appliquer les nouvelles fonctionnalités de Vue3. Dans cette colonne, nous vous guiderons à travers chaque projet en étapes concises et claires, avec des explications détaillées et des exemples de code. Dans le même temps, nous partagerons également certains problèmes et solutions courants dans le développement de Vue3 pour vous aider à surmonter les difficultés et à améliorer l'efficacité du développement. Que vous souhaitiez apprendre Vue3 en profondeur ou que vous ayez besoin d'un guide complet pour créer des projets front-end, la colonne du didacticiel transparent Vue3 deviendra votre ressource indispensable. Cliquez pour vous abonner à la colonne Tutoriel Transparent Vue3 [De zéro à un]

Insérer la description de l'image ici

Le guide de démarrage de TypeScript (gratuit) est une colonne conçue pour vous aider à démarrer rapidement et à maîtriser les technologies liées à TypeScript. Grâce à un langage concis et clair et à des exemples de code riches, nous expliquerons en profondeur les concepts de base, la syntaxe et les fonctionnalités de TypeScript. Que vous soyez débutant ou développeur expérimenté, vous trouverez ici un parcours d'apprentissage qui vous convient. Des fonctionnalités de base telles que les annotations de type, les interfaces et les classes au développement modulaire, à la configuration des outils et à l'intégration avec des frameworks frontaux courants, nous couvrirons de manière exhaustive tous les aspects. En lisant cette colonne, vous pourrez améliorer la fiabilité et la maintenabilité du code JavaScript, et fournir une meilleure qualité de code et une meilleure efficacité de développement pour vos projets. Embarquons ensemble dans ce voyage TypeScript passionnant et stimulant ! Cliquez pour vous abonner à la colonne Guide de démarrage de TypeScript

Insérer la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/JHXL_/article/details/132773124
conseillé
Classement