Re: OOP/OOD Philosophy



On 13 Jul 2005 02:10:11 -0700, ggroups@xxxxxxxxxxx wrote:

>Mark Nicholls wrote:
>
>> I would expect some notion of structural encapsulation to need to
>> exist...i.e. the object, and probably composite behavioural
>> encapsulation...i.e. the interface.
>
>> objects + interfaces = OO.
>
>> or
>
>> structural encapsulation + behavioural encapsulation = OO
>
>> seems better to me.
>
>> I think OO needs statefull objects, else it is just procedural.
>
>ADT = interface + encapsulation + implementation hiding
>Object-Based = ADT + self-reference
>Object-Oriented = Object-Based + Inheritance
>
>Very succinct. Very precise.

I agree that this are succinct and precise definitions. Furthermore,
I don't have any problem with the first two. However, the third (OO)
bothers me because it lacks intent. To me, OO is much more about
intent, than about inheritance.

On a pickier point, I think the definition above puts far too much
emphasis on inheritance. Indeed, I think it was written by someone
who was used to statically typed languages and therefore thought that
polymorphism and inheritance were inextricably linked. I would be
much happier (though I would still have the issue of intent) with the
above definition if it were stated as:

Object-Oriented = Object-Based + Dynamic Polymorphism.



-----
Robert C. Martin (Uncle Bob) | email: unclebob@xxxxxxxxxxxxxxxx
Object Mentor Inc. | blog: www.butunclebob.com
The Agile Transition Experts | web: www.objectmentor.com
800-338-6716


"The aim of science is not to open the door to infinite wisdom,
but to set a limit to infinite error."
-- Bertolt Brecht, Life of Galileo
.



Relevant Pages

  • Re: OOP/OOD Philosophy
    ... > I agree that this are succinct and precise definitions. ... > bothers me because it lacks intent. ... > intent, than about inheritance. ...
    (comp.object)
  • Re: Inheritance question
    ... I guess I did need to be a lot clearer on intent. ... I am trying to learn inheritance so i dont really know the questions to ask. ... public BaseClass() ... virtual methods to deal with per-type behaviors. ...
    (microsoft.public.dotnet.languages.csharp)
  • Design is intent.
    ... the ultimate expression of the design. ... idea by suggesting that design is intent, ... Does this line of code express my intent that the variable 'a' should ... "The aim of science is not to open the door to infinite wisdom, ...
    (comp.object)
  • Re: Why is Hungarian Notation Considered Evil?
    ... >likely to become lies ... and intent is often more stable than mechanism. ... Object Mentor Inc. ... "The aim of science is not to open the door to infinite wisdom, ...
    (comp.object)
  • Re: Why is Hungarian Notation Considered Evil?
    ... >> is a lie. ... >What if the comment describes the intent of the code, ... Object Mentor Inc. ... "The aim of science is not to open the door to infinite wisdom, ...
    (comp.object)