Skip to content

Commit 7c0f869

Browse files
committed
Throw error if update method is not overridden.
1 parent 17f8ecb commit 7c0f869

4 files changed

Lines changed: 8 additions & 6 deletions

File tree

‎src/week3/7-oop/nobel-prize-classes/Observer.js‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
constructor(subject) {
66
subject.subscribe(this);
77
}
8+
9+
update() {
10+
throw new Error('Observer: the `update` method should be overridden.');
11+
}
812
}
913

1014
window.Observer = Observer;

‎src/week3/7-oop/nobel-prize-classes/Subject.js‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
}
88

99
subscribe(observer = {}) {
10-
if (!(typeof observer.update === 'function')) {
11-
throw new Error(`Observer must implement an 'update' method.`);
12-
}
1310
this.observers.add(observer);
1411
return () => this.observers.delete(observer);
1512
}

‎src/week3/7-oop/nobel-prize-prototype/Observer.js‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,9 @@
55
subject.subscribe(this);
66
}
77

8+
Observer.prototype.update = function() {
9+
throw new Error('Observer: the `update` method should be overridden.');
10+
};
11+
812
window.Observer = Observer;
913
}

‎src/week3/7-oop/nobel-prize-prototype/Subject.js‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
}
77

88
Subject.prototype.subscribe = function(observer = {}) {
9-
if (!(typeof observer.update === 'function')) {
10-
throw new Error(`Observer must implement an 'update' method.`);
11-
}
129
this.observers.add(observer);
1310
return () => this.observers.delete(observer);
1411
};

0 commit comments

Comments
 (0)