16章掲示板――pub/subBulletin Board

制約

  • 大きな問題は、何らかの抽象化(オブジェクト、モジュールなど)を用いてモノに分解される。
  • モノが、何らかの動作のために直接呼び出されることはない。
  • イベント発行と購読のための基盤(別名 掲示板)を持つ。
  • モノは、イベントの購読(募集)を掲示板に投稿し、イベントを掲示板に公開(提供)する。掲示板は、すべてのイベントを管理し配信を行う。

プログラム

  1 #!/usr/bin/env python
  2 import sys, re, operator, string
  3
  4 #
  5 # イベント管理基盤
  6 #
  7 class EventManager:
  8     def __init__(self):
  9         self._subscriptions = {}
 10
 11     def subscribe(self, event_type, handler):
 12         if event_type in self._subscriptions:
 13             self._subscriptions[event_type].append(handler)
 14         else:
 15             self._subscriptions[event_type] = [handler]
 16
 17     def publish(self, event):
 18         event_type = event[0]
 19 if event_type ...

Get プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.