Shawn Walker wrote:
> Danek Duvall wrote:
>> history.py:
>>
>>   - I'm curious why you went with module-level functions, rather than
>>     wrapping everything in a class.  That would help get rid of all the
>>     "global" declarations.
> 
> Because this way, the object doesn't have to be passed around.  You can 
> call history from anywhere, any module, at any time, and be guaranteed 
> that anything you do is for the current operation.
> 
> This particular data structure is a recommendation from one of the 
> authors of Python (Alex Martelli), that you can find in the Python 
> Cookbook, recipe 6.16, "In most cases, you don't need either of them 
> [singleton or borg]. Just write a Python module, with functions and 
> module-global variables, instead of defining a class, with methods and 
> per-instance attributes."

To be clear, the whole point of doing this was so that, later on, when 
we go to implement bugs such as 2022 (client should provide operational 
intent to server), I didn't want to have to pass around an object to 
every place where we might need to get intent information.

By using a module, I was able to get all the benefits of a singleton 
(shared state, single instance) without complex mechanisms.

This allows the client to get access to intent information at any place 
throughout the code just by using history.method() without having to 
rely on the caller to pass in a reference to it.

-- 
Shawn Walker
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to