> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of Kirby Urner > Sent: Friday, August 19, 2005 8:30 PM > To: edu-sig@python.org > Subject: [Edu-sig] Design patterns > > Anyway, here's a design question: do we want to compute the angles and > store them as properties at the time of construction, i.e. in the init?
PyGeo emphasizes dynamism. So on the one hand I am anxious - for performance reasons - to push as much processing as I can into __init__. IOW, start-up time for a construction is much less a concern than the responsiveness when there is change, i.e. when a point of the construction is picked and moved and all the implications of that move needs be determined and all elements affected by it redrawn. And exactly for the same reason, there are clear constraints as to what I can in fact put in __init__. Everything intended to be dynamic needs to be in methods calculated on the fly. What I end up with to get decent performance is a patterns of registration. Part of __init__ for any element is a process with registers it on a chain of dependencies, so that when a point is in fact picked and moved the point knows what other elements of the construction depend - directly and indirectly - on its position and only those elements are recalced and redrawn. The moral of the story is, I think, it depends on what in more precise terms you are trying to do. The great fun of building PyGeo has been that I always had a pretty clear idea of what I was trying to do. Given that, it seemed a process of simply discovering the way to do it. That is as opposed to inventing the way to do it. The way to do it was pretty much dictated by the intent of the project, and was more and less sitting there. I have just needed to find it. Art _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig