[Tutor] recommendation for good OO book?

Alan Gauld alan.gauld at btinternet.com
Fri Mar 9 22:50:48 CET 2007

"Jeff Peery" <jeffpeery at yahoo.com> wrote

> I really don't utilize this object oriented stuff in a good way.
> Does anyone have a favorite book regarding the basics/intro
> to object oriented programming, how to write good OO code??

There are lots of books tackle this and it depends on your preferred
learning style. My current favourites are:

1) Object oriented software Construction by Meyer
Pros: The best by a mile in terms of pure OO explanations and very 
Cons: It uses Meyers own Eiffel language and is huge(over 1200 pages).
But if you want a great theoretical and practical text book it can't 
be beaten.

2) OOA & D by Grady Booch
Pros: The classic text on OOD, gives good background on why
and is excellent for those working onl large scale projects
Cons:A little bit dated now(1992?) and very C++ focused
(The first edition if you can find it is better in that it uses 5 
Also more focused on design rather than code.

3) OOP by Timothy Budd (2nd Ed)
Pros: Very code oriented and targetted at smaller problems than Booch
Its very short!
Cons: I think the latest version only uses Java which in my view 
its value significantly

4) OOP by Coad and Nicola
Pros: A really really good book on turning a design into code,
with lots of little rules/idioms (eg Be wary of objects called 
Cons: A little old and very hard to find

5) Agile Software Development by Martin
(I;'m in two minds about recommending this since it varies between
brilliant and poor)
Pros: The OOP bits are good but Martin is obsessed by interfaces
and is very C++/Java focussed.
Cons: There is a lot of stuff about Agile development which frankly
is not good. It has lots of bad ideas, mistakes and dubious code.
It's not bad for small scale programming but the Agile stuff is very
poor compared to the OO stuff IMHO. But if you can borrow a copy,
read up the OO bits and scan the rest its quite good.

6) Design Patterns by Gamma et al
Very specific treatment of one aspect of OO but an important one.
And if you read and understand how all the various patterns work
you will have a good toolbox of ideas on how to do OOP (as well
as the patterns themselves!) But it won't help with building a project
from scratch or coming up with the initial  list of classes etc.

All my own views, others will no doubt have other ideas,

And, of course, investigate cetus-links.org

Alan G.

More information about the Tutor mailing list