Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!mips!pacbell.com!tandem!netcomsv!jls From: jls@netcom.COM (Jim Showalter) Newsgroups: comp.object Subject: Re: Objects and Interactions: Separate Definitions Keywords: modeling Message-ID: <1991Jun4.020657.6606@netcom.COM> Date: 4 Jun 91 02:06:57 GMT References: <3999@motcsd.csd.mot.com> <1991May21.064913.16149@netcom.COM> <1991May22.012821.12048@tkou02.enet.dec.com> <1991May22.183044.5634@Think.COM> <19807@crdgw1.crd.ge.com> <7051@stpstn.UUCP> <20695@cadillac.CAD.MCC.COM> Distribution: comp Organization: Netcom - Online Communication Services UNIX System {408 241-9760 guest} Lines: 28 >A number of us at MCC learned this lesson the hard-way (circa '84-87). My cut >(which is the same thing as Brad is saying) is to separate the control of the >object from the objects being controlled. Concrete examples include: provide a >draw model (set of classes) rather than just objects which draw themselves; do >not build versioning into the objects being versioned but rather provide a >versioning and configuration control model for managing the objects. If you >notice that you are having a class (type) explosion due to slight variations in >the semantics of control then you are falling into the ``everything is just an >object'' trap. Careful--you're starting to sound like the people who've had serious reservations about "pure" OO since it first arrived on the scene! I know a number of people who think OO has been greatly oversold because it makes no more sense for everything to be an object than it does for everything to be a function. As with most things in life, a more middle- of-the-road, HYBRID strategy is required. A control sequence at the top of a pile of application code is not and never has been a proper object, and attempts to force it to be so result in non-intuitive, stilted code (the famous "XYZ_Manager" object, which is an object only by the most tortured misuse of the English language). Some things are objects and some things are not objects, and the pragmatist (as opposed to the religious nut) uses the most appropriate construct for each entity in the program, not the most politically correct construct. -- **************** JIM SHOWALTER, jls@netcom.com, (408) 243-0630 **************** *Proven solutions to software problems. Consulting and training on all aspects* *of software development. Management/process/methodology. Architecture/design/* *reuse. Quality/productivity. Risk reduction. EFFECTIVE OO usage. Ada/C++. *