observer pattern (notification chain synchronization)

Ville M. Vainio vivainio at gmail.com
Sun May 11 15:59:35 EDT 2008


Alan Isaac <aisaac at american.edu> writes:


> Here is one way:
>
> - for each fund, create a ``reportreceived`` dict that maps stocks to booleans (initially False)
> - as each stock notifies its funds, the fund changes False to True and checks ``all(reportreceived.values())`` to determine whether it is ok to notify investors.
> - When it is ok, the fund notifies investors and resets all the
> ``reportreceived`` values.
>
> Is this sensible enough? What are standard and better ways?

You could explore the performance of popping items from the dict/set,
instead of toggling the value so to true. Once the dict is empty, you
are done. Of course the dict/set would be called
stocks_that_havent_reported, or a saner & shorter variant of that.

The idea here is that checking a dict/set for emptiness is
close-to-zero time operation.





More information about the Python-list mailing list