views:

747

answers:

7

I am looking for a good reference, which describes how to design and implement OO objects irrespective of OO language used. The things that programmer should consider in the initial stages of designing and implementing objects. things like, when to use inheritance/polymorphism and when to use composition. Please note, i am not looking for design pattern books.

I had come across quite a few useful books like, [1] Object oriented programming by Grady booch. and C++ related [1] Effective c++ series by Scott mayers [2] C++ Coding standards by Herb sutter

Any other good reference?

+4  A: 

Object-Oriented Software Construction

by BERTRAND MEYER

Or maybe the Head First Object-Oriented Analysis and Design

Gern Blandston
A: 

I would advise this one: Grady Booch, Object-Oriented Analysis and Design with Applications

It takes a few real-life problems and goes step by step through the process.

eugensk00
+4  A: 

By far the best resource to start off with would be Head First Object-Oriented Analysis and Design. It's very simple to understand but very thorough in detail. I'ts examples are in Java, but the concepts are language agnostic. This isn't just for begginner programmers either. Infact, I find most of "Head First" series are really good. After reading this one, I would pick up Head First Design Patterns.

Micah
Micah, I like the Head First series as well.
itsmatt
The best thing about the head first series is they are actually written in a style that makes them enjoyable to read. Most software development books are very dry and you really have to force yourself to read them.
anon
+2  A: 

Object Oriented Design Heuristics by Arthur J. Riel is fantastic!

As @Micah suggests, the Head First Design Patterns book is excellent too, and is probably a 'softer' introduction.

Galwegian
+1  A: 

Check out various Design Patterns books, also. For example Pattern Languages of Program Design 3 (Software Patterns Series). I found that Robert C. Martin -- while hard to read sometimes -- has a lot of deep insight into how OO design should feel while you're doing it. Really helpful stuff.

S.Lott
A: 

I think perhaps the best way to learn OO is to actually do it, in as many languages as possible.

Comparing a number of languages such as Java, PHP, Python and Ruby can really open your eyes to different ways to solve problems, even within the OO sphere.

I've learned a lot from PHP Objects, Patterns, and Practice which, while being PHP oriented, is an excellent book.

garrow
A: 

The Object-Oriented Thought Process
by Matt Weisfeld

.. is pretty good. It is a beginner's book for OO concepts that are useful in any language.

http://books.google.com/books?id=QveDqVtLFIcC&dq=object+oriented+thought+process

Corey Goldberg