home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / object / 3404 < prev    next >
Encoding:
Internet Message Format  |  1992-09-03  |  2.5 KB

  1. Path: sparky!uunet!van-bc!eosvcr!aew
  2. Newsgroups: comp.object
  3. Subject: Re: Object-Oriented Methodologies - Class Specifications
  4. From: aew@eosvcr.wimsey.bc.ca (Alan Walford)
  5. Distribution: world
  6. Message-ID: <q9aHqB1w162w@eosvcr.wimsey.bc.ca>
  7. References: <715276480.1.p00058@mail.psi.net>
  8. Date: Wed, 02 Sep 92 07:54:01 PDT
  9. Organization: Eos Systems Inc, Vancouver, B.C., Canada
  10. Lines: 49
  11.  
  12. "Ronald C. Schultz" <p00058@mail.psi.net> writes:
  13.  
  14. > Object Coupling - In order to better support reuse, objects should be as 
  15. > decoupled as possible from any specific application, so that they may be 
  16. > reused in as many applications as possible.  In Rumbaugh's OMT text he 
  17. > provides a class specification for a circle on page 290.  I quote:
  18. > ---- start of quote -------------------------
  19. > Class Description
  20. > Class Name: Circle
  21. > Version: 1.0
  22. > Description: Ellipse whose major and minor axes are equal
  23. > Super Classes: Ellipse
  24. > Features:
  25. >     Public Attributes:
  26. >         center: Point - location of its center
  27. >         radius: Real - its radius
  28. >     Public Methods: 
  29. >         draw (Window) - draws a circle in the window
  30. >         intersectLine (Line): Set of Points - finds the 
  31. > intersection of a line and a circle, returns set 0-2 points
  32. >         area(): Real - calculates area of circle
  33. >         perimeter(): Real - calculates circumference of circle
  34. >     Private Methods: none
  35. > ---- end of quote --------------------------
  36. > This class specification screams of unnecessary object coupling.  Why, 
  37. > for instance, should a circle need to be aware of the existence of 
  38. > lines? or of the existence of windows?  To me, this class violates the 
  39. > very concept of a circle as defined in any geometry text.    
  40.  
  41. My feeling is that Draw should not be in the class. An operation that
  42. is very dependent on a user interface should be decoupled from a model 
  43. class like "Circle". Draw should be in a UI class like a "View". You can
  44. see I follow the Model-View-Controller (MVC) paradigm quite a bit.
  45.  
  46. My question is where does intersectLine go?  Does it go with Line, with
  47. Cirlce, with an application View or with some other class ? 
  48.  
  49. It should _not_ go with the application since line and circle intersection 
  50. is application independent. One would not want this sort of coupling to an
  51. application (loss of reuse). But if you do not like it going with Circle or
  52. Line, where does it go?  A Transform class perhaps ?
  53.  
  54. Al
  55. ----------------------------------------------------------------------------
  56. Alan Walford     Eos Systems Inc., Vancouver,B.C., Canada  Tel: 604-734-8655
  57. aew@eosvcr.wimsey.bc.ca  OR  ...uunet!wimsey.bc.ca!eosvcr!aew  
  58.