The Design of Software (CLOSED)A public forum for discussing the design of software, from the user interface to the code architecture. Now closed. |
||
The "Design of Software" discussion group has been merged with the main
Joel on Software discussion group.
The archives will remain online indefinitely. |
Hi, I'd like some help from the other readers in order to find out what the name for this pattern is.
I've used it twice (one telecom configuration project and now in a sort of simple workflow subsystem) and I suppose it's pretty common knowledge... but by finding out the correct name I may perhaps find more about it over the net. Basically the idea is as follows: I have one header record with a status code (open, work-in-progress, pending, closed etc.). A set of 0-n records (items) are linked to this header, each item may be in one of several states (new, closed, error, verified etc.). This too, at the level of the item record, is modeled with a status code. The status code of the header is a function of the state of all its linked items. For example "if at least one item has <<error>> status, header will be in status "pending". Each time one of the linked items changes status, header status will be re-evaluated. Is there a name for this pattern?
doesn't look like any of the 'classic' design patterns, but partly reminds me State and maybe Blackboard patterns. google for them to see if they suit your situation.
szeryf Tuesday, March 21, 2006
Composite could be a good match, but there seems to be nothing in particular about state (or any other value of the composite) being a function of the state of the subelements, which to me seemed the whole point of this.
Thanks to all who contributed...
I am a bit surprised that concepts like the one I presented don't seem to be "worthy" of a specific denomination... is this due to lack of consensus about what should be a pattern and what doesn't deserve classification or am I missing the point? As someone else noted, this idea is used all over his application. I think it is useful, simple, and versatile enough to qualify as a pattern in itself... but in order to convey the concept in a concise way, I find monickers like "you know, the State/Composite/Observer thingy we read about in JoS" a bit lacking. Is there a way to get this accepted as an "official" pattern? Where should I apply?
Paolo,
There are really hundreds of design patterns. The 23 in the GoF book are just scratching the surface. Many useful patterns do not have a name. Although this is a special case of forward chaining, I think it deserves a name in its own right. Here you will find many more: http://www.c2.com/cgi/wiki?SoftwareDesignPatternsIndex |
Powered by FogBugz