[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 mailing list