1)事前の登録:addObserver

まず、Subject の状態に依存して変化する、すべての Observer を登録します。

# Observer_gof.py
class ExObserver(EasyWindow, Observer):
def __init__(self, subject, **args):
EasyWindow.__init__(self, **args)
subject.addObserver(self)

subject に対して、自身 self を登録 addObserver します。すると、subject の状態が変化したときに、ExObserver の傘下にあるインスタンス self は、その通知を受けられます。

# Observer_gof.py
class ExSubject(EasyWindow, Subject):
def _init(self):
self.observers = []

def addObserver(self, observer):
self.observers.append(observer)

メソッド addObserver では、Subject に依存する observer を、インスタンス属性 self.observers に登録 append します。後で、Subject の状態が変化したときには、self.observers が保持するすべての要素 observer に対して、その旨を通知する必要があります。