私が知る限り、これはObserverパターンのようなものです。 シナリオ:Centerオブジェクトは、すべてのクライアントのリスト(キュー)を保持します。私はTwistedを使用しています。クライアントの変数が変更されたときに別のオブジェクトの関数をトリガする方法。 Python
- 一つ中心オブジェクト内の変数を変更または変数を変更するために中心を通知する、
- 、次いで中心オブジェクトを直ちに変更を検出オブジェクト。クライアントは、変数を変更した後、すぐに検出として、中心オブジェクトはキュー
- に次のオブジェクトいくつかの機能を呼び出す
- は、次いで、クライアントオブジェクトは、が排除されます。センターは次のクライアントオブジェクトの世話をします。だから私は、これらのオブジェクトの間に機能連鎖はないと想像しています。だから、オブザーバーのパターンとは少し違います。 (どのようにこの問題に対処するために私が間違っているなら、私を修正?。)
次のコードは、ただ唯一のデモのためです:
class client():
def change(self):
self.center.va = 1
def inqueue(self):
self.center.queue.enqueue(self)
def function(self):
pass
class center():
def __init__(self):
self.queue = None
self.va = 0
#### When the self.va changes, this func will be invoked
def whenChanged(self):
next = self.queue.dequeue()
next.function()
おそらく、[setter/getterプロパティ](http://stackoverflow.com/a/2627034/6779606)を定義します。 – PyNoob