<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: DevMUD: Inheritable modules --> <!--X-From-R13: "Xba O. Znzoreg" <wyflfvapNvk.argpbz.pbz> --> <!--X-Date: Sat, 31 Oct 1998 20:02:34 -0800 --> <!--X-Message-Id: 199811010358.VAA28078@dfw-ix16.ix.netcom.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199810310718.BAA28675#laurel,actlab.utexas.edu --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Re: DevMUD: Inheritable modules</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:jlsysinc#ix,netcom.com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00656.html">Previous</a> | <a href="msg00658.html">Next</a> ] Thread: [ <a href="msg00621.html">Previous</a> | <a href="msg00639.html">Next</a> ] Index: [ <A HREF="author.html#00657">Author</A> | <A HREF="#00657">Date</A> | <A HREF="thread.html#00657">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Re: DevMUD: Inheritable modules</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] Re: DevMUD: Inheritable modules</LI> <LI><em>From</em>: "Jon A. Lambert" <<A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A>></LI> <LI><em>Date</em>: Sat, 31 Oct 1998 22:59:10 -5</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On 31 Oct 98, Cynbe ru Taren wrote: > "Jon A. Lambert" <jlsysinc#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#ix,netcom.com /*\-- --/*\ Mud Server Developer's Page <<A HREF="http://www.netcom.com/~jlsysinc">http://www.netcom.com/~jlsysinc</A>> /*\-- --/*\ "Everything that deceives may be said to enchant" - Plato /*\-- </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00621" HREF="msg00621.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></STRONG> <UL><LI><EM>From:</EM> Cynbe ru Taren <cynbe#muq,org></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00656.html">[MUD-Dev] Re: PDMud thread summary</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00658.html">[MUD-Dev] Re: Why modules? (Was: Inheritable modules)</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00621.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00639.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00657"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00657"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: DevMUD: Inheritable modules</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <LI><strong><A NAME="00633" HREF="msg00633.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, The Arrow <a href="mailto:arrow#trelleborg,mail.telia.com">arrow#trelleborg,mail.telia.com</a>, Sat 31 Oct 1998, 21:01 GMT </LI> <LI><strong><A NAME="00852" HREF="msg00852.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, James Wilson <a href="mailto:jwilson#rochester,rr.com">jwilson#rochester,rr.com</a>, Sun 22 Nov 1998, 23:04 GMT <UL> <LI><strong><A NAME="00853" HREF="msg00853.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, J C Lawrence <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Sun 22 Nov 1998, 23:08 GMT </LI> </UL> </LI> </ul> <LI><strong><A NAME="00621" HREF="msg00621.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Cynbe ru Taren <a href="mailto:cynbe#muq,org">cynbe#muq,org</a>, Sat 31 Oct 1998, 07:50 GMT <UL> <LI><strong><A NAME="00657" HREF="msg00657.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sun 01 Nov 1998, 04:02 GMT </LI> </UL> </LI> <LI><strong><A NAME="00639" HREF="msg00639.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 31 Oct 1998, 21:22 GMT </LI> <LI><strong><A NAME="00644" HREF="msg00644.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 31 Oct 1998, 21:23 GMT </LI> <LI><strong><A NAME="00645" HREF="msg00645.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 31 Oct 1998, 21:23 GMT </LI> <LI><strong><A NAME="00662" HREF="msg00662.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 01 Nov 1998, 06:01 GMT </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>