Hi,
   I haven't found a single book that clearly covers all the language-agnostic parts of OOP (hey! maybe there's a gap in the market Smiley ), but I have found several book influential in an indirect sense:

Martin Fowler's Refactoring
Kerievsky's Refactoring to Patterns
A second Fowler book that I found interesting was Analysis Patterns
I also found the Microsoft book Framework Design Guidelines to be useful if you're ever writing code that other people might use (either in a framework, or just because they're on the same programming team as you).

Another goody is to read as much as you can about design patterns and try to figure out why people use these designs; why are they considered good?


One book I didn't like too much was Object-Oriented Design Heuristics -- I disagreed with some of the recommendations made in this book.  It sounded too much like a lecture from a classroom; based on theory rather than actual practice.

I should also give a second vote for Code Complete, which is one book I think every programmer should have on their desk. I haven't finished catching up on the second edition, but I believe it's extended the first edition in the object oriented area.

Just my 2p worth.


Herbie