Object design style guide by Matthias Noback
Matthias Noback's practical guide to writing flexible, readable, and maintainable object-oriented code, with techniques applicable to any OO language from Python to PHP.
Objects are the central concept of languages like Java, Python, C#. Applying best practices for object design means that your code will be easy to read, write, and maintain.
This book captures dozens of techniques for creating pro-quality OO code that can stand the test of time.
Examples are in an instantly-familiar pseudocode, teaching techniques you can apply to any OO language, from C++ to PHP.