From: Phlip on 10 Jun 2005 19:19 Alan Gauld wrote: > You just described the difference. Your definition is much > narrower than OO. > OO has een applied to many different things from menu systems to > graphics > to business analysis therefore it cannot be defined purely in > terms of > programming terms. Microsoft likes to put out that Windows is written in C++. Just saying it don't make it so ;-) And giving OO a narrow definition helps tease Topmind back. If you define OO as polymorphism, then the statement "OO sucks" is the same as "polymorphism sucks", which is trivially false. -- Phlip http://www.c2.com/cgi/wiki?ZeekLand
From: Christer Ericson on 11 Jun 2005 02:01 In article <m2aclxq22x.fsf(a)beagle.i-did-not-set--mail-host-address--so- tickle-me>, peter(a)beagle.i-did-not-set--mail-host-address--so-tickle-me says... > > [...] > > The commonly accepted view is that _only_ when we add the feature of > > enclosing _data_ in the ADT does it become an object. That is, the > > fundamental idea of object orientation is to combine within an > > entity (which we call the object) data and operations on that data. > > Commonly accepted by whom? Commonly accepted by a majority of people and taught at universities world-wide, as reflected by a majority of textbooks: "An object is a hidden variable together with a group of exported operations (functions, procedures, etc) that access it." (Watt. Programming Language Concepts and Paradigms, p.106). "A class describes an abstract data type; class instances are called _objects_." (Ghezzi and Jazayeri. Programming Language Concepts, p. 155). "One way to achieve a modular solution is by identifying within a problem components -- called _objects_ -- that combine data and operations on the data. Such an _object-oriented_ approach to modularity produces a collection of objects that have behaviors." (Carrano and Prichard. Data Abstraction and Problem Solving with C++, 3rd ed., p. 18) "The ADT concept is closely related to the concept of objects too. "Object" is a loosely defined term, but it generally refers to a collection of data and operations on the data." (McConnell. Code Complete, 1st ed., p. 297) Sorry, I ran out of textbooks within arm's reach. Need I go on? Granted, the idea of an object also generally includes the concepts of inheritance and polymorphism, but these are nowhere near as fundamental as "data + operations = object." -- Christer Ericson http://realtimecollisiondetection.net/
From: Ilja Preu� on 11 Jun 2005 02:43 CTips wrote: > topmind wrote: > <snip> >> OO is good for .... shapes. >> > > Not really. Anytime someone comes up with the shapes example, ask them > how they would add the method: > > class shape { > // true if object has any points in common with <B> > boolean intersects(shape B); > } > > See how quickly mind-lock sets in.... Why should this simple request cause any mind-locks??? Confused, Ilja
From: Dmitry A. Kazakov on 11 Jun 2005 05:07 On Fri, 10 Jun 2005 15:03:42 -0500, Robert C. Martin wrote: > On Fri, 10 Jun 2005 10:44:42 +0200, "Dmitry A. Kazakov" > <mailbox(a)dmitry-kazakov.de> wrote: > >>On Thu, 09 Jun 2005 16:13:48 -0500, Robert C. Martin wrote: >> >>> I don't think so. Polymorphism is the ability for an object to >>> respond to a message in a manner that is consistent with it's type. >> >>Isn't it rather strong typing? > > OO languages are strongly typed, even if they aren't statically typed. Yes. But the point is that an ability to act consistently with the type characterize strong typing, not polymorphism. >>Ooch. Can a goal of software design/structuring/etc be "calling functions >>through jump tables"? You belittle OO! (:-)) > > One cannot belittle something by describing it in detail. That depends on the detail you are going to describe... (:-)) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de
From: Phlip on 11 Jun 2005 06:14
Christer Ericson wrote: > Granted, the idea of an object also generally includes the > concepts of inheritance and polymorphism, but these are nowhere > near as fundamental as "data + operations = object." In C: void operation(struct object * pObject); Is that Object Oriented? Or does the dot notation aObject.operation() make it object oriented? -- Phlip http://www.c2.com/cgi/wiki?ZeekLand |