[MUD-Dev] Re: DevMUD: Inheritable modules
Jon A. Lambert
jlsysinc at ix.netcom.com
Sat Oct 31 22:59:10 New Zealand Daylight Time 1998
On 31 Oct 98, Cynbe ru Taren wrote:
> "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?)
Yes it is an essential book. :)
The mediator has a pretty well-defined function though, to facilitate
communication/interaction between classes (modules in this case).
I think the use of the core as mediator is another good way to
go. Network primitives wouldn't go into the core though, they
would go in some network class/module. Otherwise you may have
the Blob. (see "Anti-patterns", Brown, Malveau, McCormick,
and Mowbray... the Anti-gang-of-four) ;)
> 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.
Agreed. The core as Observer has potential here also. I think
someone else mentioned something similar with Publish/Subscribe.
> 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
> as well.
> Anyhow, that's one possible justification for having a 'core'.
Ok. I'll buy that one.
> 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.)
Well I think you might want to consider that using components to
do rapid development of user interfaces to be a success story.
--/*\ Jon A. Lambert - TychoMUD Internet:jlsysinc at ix.netcom.com /*\--
--/*\ Mud Server Developer's Page <http://www.netcom.com/~jlsysinc> /*\--
--/*\ "Everything that deceives may be said to enchant" - Plato /*\--
More information about the MUD-Dev