Observer Patterns's Subject in JavaScript
  • JavaScript 100%
Find a file
2016-07-10 17:25:58 -04:00
.gitattributes 🍭 Added .gitattributes & .gitignore files 2016-07-10 15:37:25 -04:00
.gitignore 🍭 Added .gitattributes & .gitignore files 2016-07-10 15:37:25 -04:00
index.js Don't store observer as both key/value 2016-07-10 17:18:15 -04:00
LICENSE.md Add ISC license 2016-07-10 15:46:11 -04:00
package.json 1.1.1 2016-07-10 17:25:58 -04:00
README.md Update docs - broke removing abstract... 2016-07-10 17:25:48 -04:00
spec.js No need to force abstraction 2016-07-10 17:15:25 -04:00

Observer Design Pattern Subject

An implementation of the subject in an Observer Design Pattern.

Example

let Observable = require('observer-subject'),
  subject = new Observable(),
  observer1 = {
    notify(...args) {

      console.log(`#1`, ...args);

    }

  },
  observer2 = {

    notify(...args) {

      console.log(`#2`, ...args);

    }

  };

subject.registerObserver(observer1);
subject.registerObserver(observer2);
subject.notifyObservers(42);
// #1 42
// #2 42

subject.unregisterObserver(observer1);
subject.notifyObservers(32);
// #2 32

Installation

$ npm install observer-subject

API

let Observer = require('observer-subject');

.registerObserver(observer)

Will start notifying the observer.

type data type name Description
parameter object observer The object to be notified.
throws Type Exception n/a Will throw an error if observer does not have a function named notify.

.unregisterObserver(observer)

Will no longer notify the specified observer.

type data type name Description
parameter object observer The object to be notified.
returns boolean n/a true if the observer was found and removed, otherwise false

.notifyObservers(..args)

Calls each observers notify function with the arguments provided.

type data type name Description
returns boolean n/a true if game has ended, otherwise false.

observer.notify(...args)

Callback that the observable object uses to notify the observer.

type data type name Description
parameter ...* args Arguments from the observable object.