[MUD-Dev] Re: DevMUD: Inheritable modules
Cynbe ru Taren
cynbe at muq.org
Sat Oct 31 01:18:10 New Zealand Daylight Time 1998
"Jon A. Lambert" <jlsysinc at ix.netcom.com> comments:
| I think the idea of a something called the core is sort of a cop out
| in designing a system. Basically it's a blackhole, where one can
| dump anything with out really thinking about interface.
| Some may also know this as the blob phenomenon, where a single
| amorphous controller class or system management module monopolizes
| all the processing. The surrounding modules become little more than
| a means to encapsulate data and ultimately serve the blob.
| One solution is to slow down, stop, and refactor the responsibilities
| of the disparate functions which have been tossed into the blob.
| Any thoughts.... :)
For an opposing opinion, see the discussion of the Mediator design
pattern in Design Patterns by Gamma,Helm,Johnson,Vlissides. (Probably
the single most important book for anyone doing high-level OOP design?)
They note that factoring knowledge of interconnects diffusely into a
network of classes results in a system that acts as though it is
monolithic, because each class knows too much about its surroundings
to work well in any other context.
Isolating all the interaction logic in a central Mediator class can
let the leaf classes be much simpler and more focussed and hence
easier to use in other contexts.
This also lets the interactions be modified by subclassing only the
Mediator object, instead of having to subclass all the leaf classes
Anyhow, that's one possible justification for having a 'core'.
BTW: Not to cast cold water, but I think interchangable software
parts which work smoothly in novel combinations is a Really Hard
Problem which people have been attempting for decades with as yet
no clear success stories[*]. (JavaBeans is the latest effort along
these lines, and I think the jury is clearly still out.)
At least some people seem to envision DevMUD solving this problem:
That would be wonderful if so, but I believe it will require
intense focus and some brilliant work to make it happen.
[*] Unless, say, one wishes to count Unix filters or AVS modules.
I see those as different in spirit from the usual interchangable
software parts vision.
More information about the MUD-Dev