Skip to content

Commit 28e5392

Browse files
committed
Update code
1 parent cb75e69 commit 28e5392

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

Diff for: chapters/design_patterns/observer.md

+17-14
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,36 @@ You have to notify some objects about an event happen
1212
Use an [Observer Pattern](http://en.wikipedia.org/wiki/Observer_pattern)
1313

1414
{% highlight coffeescript %}
15+
1516
class PostOffice
16-
constructor: () ->
17-
@subscribers = []
18-
sendNewItemReleased: (item) ->
19-
subscriber.callback(item) for subscriber in @subscribers when subscriber.item is item
20-
return
21-
subscribe: (to, onNewItemReleased) ->
22-
@subscribers.push({'item':to, 'callback':onNewItemReleased})
17+
constructor: () ->
18+
@subscribers = []
19+
notifyNewItemReleased: (item) ->
20+
subscriber.callback(item) for subscriber in @subscribers when subscriber.item is item
21+
subscribe: (to, onNewItemReleased) ->
22+
@subscribers.push {'item':to, 'callback':onNewItemReleased}
23+
2324
class MagazineSubscriber
24-
onNewMagazine: (item) ->
25-
alert "I've got new "+item
25+
onNewMagazine: (item) ->
26+
alert "I've got new "+item
27+
2628
class NewspaperSubscriber
27-
onNewNewspaper: (item) ->
28-
alert "I've got new "+item
29+
onNewNewspaper: (item) ->
30+
alert "I've got new "+item
2931

3032
postOffice = new PostOffice()
3133
sub1 = new MagazineSubscriber()
3234
sub2 = new NewspaperSubscriber()
3335
postOffice.subscribe "Mens Health", sub1.onNewMagazine
3436
postOffice.subscribe "Times", sub2.onNewNewspaper
35-
postOffice.sendNewItemReleased "Times"
36-
postOffice.sendNewItemReleased "Mens Health"
37+
postOffice.notifyNewItemReleased "Times"
38+
postOffice.notifyNewItemReleased "Mens Health"
39+
3740
{% endhighlight %}
3841

3942
## Discussion
4043

4144
Here you have an observer object (PostOffice) and observable objects (MagazineSubscriber, NewspaperSubscriber).
4245
To be notified about an event of publishing new periodical observable object should make subscribtion on PostOffice.
43-
Every of subscribed objects is stored internaly in the PostOffice array of subscribers.
46+
Every of subscribed objects is stored internaly in the PostOffice array of subscribtions.
4447
Every subscriber is notified on new concrete periodical is published.

0 commit comments

Comments
 (0)