views:

106

answers:

4

Which is the best book to learn and implement Design patterns available in the industry with examples? like Creational Patterns,Structural Patterns, Behavioral Patterns ?

+2  A: 

If you want to start with the Design Patterns with basic examples in that case you can check this http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=1335831

Prakash Kalakoti
+2  A: 

C# 3.0 Design Patterns covers a selection of the original GoF patterns with C# examples. It does a pretty decent job, but to be honest I prefer the original book. The code samples are not that difficult to translate, and the text is more elaborate so my recommendation is to go with the original.

Brian Rasmussen
+1  A: 

data and object factory has all the GOF patterns and more with example code in C# or VB.Net. A nice reference indeed, and fairly priced.

Mikael Svenson
+1  A: 

I would still start with the GoF Design Patterns Elements of Reusable Object-Oriented Software. You need to be familiar with the names and function of each of the patterns in this book—even if you don't use some of them (please don't use Singleton). Also be aware that some of the patterns in this book are idiomatic ways of compensating for missing language features, and so may not be applicable to your language of choice.

Still, even if you use a language with first-class object-constructors, it is still worth knowing what people mean when they talk about a "Factory Object".

Martin Fowler's Refactoring: Improving the Design of Existing Code and Analysis Patterns: Reusable Object Models are both excellent books for someone new to Design Patterns and OOP in general.

I consider The Practice of Programming by Kernighan and Pike to be one of the best "What they didn't teach you in college, but maybe should have" programming books ever written; and while they are not OOP focused, and don't mention patterns by name, the book is packed full of good advice easily transferable to any language.

By far the most powerful design pattern is "The Interpreter", the pattern actually encompasses multiple separate fields of study within computer-science, and hence is not fully explored in any one book let along a single chapter of GoF. The best introduction I am familiar with is Essentials of Programming Languages by Daniel Friedman et al.

If you are going to be writing anything that talks to the net (and who doesn't?), read Roy Fielding's PhD thesis Architectural Styles and the Design of Network-based Software Architectures. This is the document that first described ReST, and is still the first place to go to learn how to build scalable network applications.

Finally if you are going to be dealing with concurrency, I cannot recommend Joe Armstrong's PhD thesis highly enough. Programming reliable systems is a clear, consise, easy read, and covers the state of the art in how to design highly concurrent systems that don't fail.

Recurse