Skip to main content

Robert C. Martin

Robert C. Martin (Uncle Bob) has been a software professional since 1970 and
an international software consultant since 1990. He is founder and
president of Object Mentor Inc., a team of experienced consultants who
mentor their clients worldwide in the fields of C++, Java, OO, Patterns,
UML, Agile Methodologies, and Extreme Programming. In 1995 Robert authored
the best-selling book: Designing Object Oriented C++ Applications using the
Booch Method, published by Prentice Hall. From 1996 to 1999 he was the
editor-in-chief of the C++ Report. In 1997 he was chief editor of the book:
Pattern Languages of Program Design 3, published by Addison Wesley. In 1999
he was the editor of "More C++ Gems" published by Cambridge Press. He is
co-author, with James Newkirk, of "XP in Practice", Addision Wesley, 2001.
In 2002 he wrote the long awaited "Agile Software Development: Principles,
Patterns, and Practices", Prentice Hall, 2002. In 2003 he wrote "UML for
Java Programmers" published by Prentice Hall. He has published hundreds of
articles in various trade journals, and is a regular speaker at
international conferences and trade shows.



There are several design patterns allow us to hide the type of an object even from those who seek to create it. These patterns are known as Factories.
One of the great benefits of object-oriented programming is polymorphism: the ability to send a message to an object without knowing the true type of the object. Perhaps no pattern illustrates this better than the Strategy pattern.
To break the dependency of a client upon a server when you can't modify the server, the Adapter pattern is an alternate approach to last month's Abstract Server pattern. The class and object versions of this pattern are offered, and the article ends with an anonymous inner class implementation.
The Abstract Server pattern is one of the simplest of the object-oriented design patterns. We use it when we want to break the dependency of a client upon a server, for the purpose of protecting the client from changes to the server, and to preserve the ability to extend the client to use other...


Twenty-five hundred years ago Aristotle came up with an explanation for the common observations that rocks fall and smoke rises. His idea was simple and elegant. His formulation was clever, and...