× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



> From: Bartell, Aaron L.
>
> <Joe>
> ...(Aaron, I suggest you get these as well, because they really
> show why you
> need to start from the ground up when
> designing OO architectures).
> </Joe>
>
> If this is from my statement of "you don't need to understand OO to make
> good use of it", I didn't mean that you shouldn't learn how to
> build simple
> base objects that can be extended upon.  I have already done some reading
> from those books (mostly from Bruce's).  Note** I am not a purist OO
> programmer.

As Hans says, in some ways OO is akin to a spiritual experience.  For
reasons far outside the scope of this list (considering this post is already
on the line), I believe that most procedural programmers require an epiphany
to "convert" to OO thinking.  Your above statement leads me to belive you
haven't reached that point yet.

Because OO is actually not about objects, not entirely.  It's about a frame
of mind where code is encapsulated and interfaces are defined and everybody
communicates via messages (in the strictest sense of OO, every interaction
between objects can be though of as a message - every method call is a
message with a bunch of parameters and a return code).

Hans and I disagree on the importance of data hiding to OO principles (in
every text I've read and every person I've talked to, the common practice in
OO is to hide all data members of a class and allow access only through
setters and getters - this is probably one of the strongest conventions in
OO today, and there is good reason for it), but we agree on the importance
of design patterns.  And you can't really design an OO system without using
design patterns of some kind; they're sort of like the simple machines of OO
programming.  Where engineers think of the pulley, the lever and the
inclined plane, OO designers think of the Decorator and the Factory.

Without understanding those basic tools and how they are used, you are
likely going to build applications that look like - well, that look like my
first projects.  Procedural ideas wrapped in OO skins.  It's ugly, because
you don't take advantage of any of the real benefits of OO design.  For
example, in OO you should program to the interface.  While the exact
implementation of this is different in different languages, it in essence
means that you never directly interact with another class.  You instead
interact with an idealized version of that class which everyone agrees upon.
You don't instantiate the class either, you invoke a Factory method which
gives you an instance of an object that implements the interface.  Why is
this important?  It's hard to explain in a single post, but it buys you an
enormous amount of flexibility down the road. Is it always necessary?  No,
but until you have worked with the concept a while, you're not in a position
to be able to decide wisely.

The point is, though, that if you don't code this way FROM THE START, it's
hell to go back and rearchitect your system.  Trust me on this.

Anyway, that's it for me.  As hard as we've all tried to keep this on topic,
this thread is destined to drift farther and farther from RPG.  Until and
unless you all decide to create an OO-L list, this is my last word on the
subject.

Joe


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.