I'd like to learn design patterns, but am having trouble selecting a book. I've heard alot about Design Patterns by Gamma et al, as well as the Core J2EE Patterns. And I'm sure there are lots of other great books out there. I'm looking for something that's intermediate level. I'm fairly familiar with OOAD, and don't want to spend too much time on beginner background material. Also, I'm focusing on Java programming, and not C++. So, would it make sense to go with a book like Design Patterns whose examples are all in C++, as opposed to one that focuses on patterns in the Java world. Any advice would me very much appreciated. -Miftah
Try Mark Grand's Catalog book which I referred to in my other post. There was another book called "Java(tm) Design Patterns: A Tutorial" by William Cooper - but it got some bad reviews on Amazon.com. But I believe a draft of the book is now available on the web somewhere. GoF book is just too abstract for my liking. And no UML. Pho
Dear Miftah Khan, To be honest, I haven't read much books on Design Patterns, but for as far as I know, there's one Design Patterns book that's the source of all other Design Patterns books. It dates back to 1995 I believe and contains all Design Patterns a seasoned software engineer should know. It's called 'Design Patterns: Elements of Reusable Object-Oriented Software' and was written by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Though it's not focused on Java, in my humble opinion, it's still a book that every self-respecting Java Designer should have on his bookshelf. It contains the basic Design Patterns and together with a more Java and Enterprise orientated book it should provide all the information you'd ever need. Best regards, Tim
I would still suggest the design pattern book by GoF. although the examples are given in C++, I think the idea is the patterns of different objects collaborate together to solve common problem. if you would like to see examples in java, i would suggest pattern in java. i read the one by william cooper, but i personally don't like it at all. of course, j2ee pattern is a must for j2ee apps. -aao
I think the GoF book is the definitive, seminal work in this area, but it is quite hard going for relatively inexperienced OO designers in my opinion (and you could argue that we are the very people who need the book the most). I have a copy of "Java Design Patterns" by William Cooper, it's okay, less abstract than the GoF book and with concrete examples in Java. It does have a few typos in code snippets, which is a bit worrying, but on the whole is worth a read. I still find the need to read some of the material over and over to get some understanding, but suspect that this is quite normal. At a more introductory level, there is a book that came out quite recently called "Design Patterns Explained" by Alan Shalloway and James Trott. I read it for about 1.5 hours in the bookshop, it seems very good. I would say definitely read this BEFORE approaching the GoF book. Also, if it comes down to a choice between this book and Cooper, I would say buy this one. I also have a book called "From Data Structures to Patterns" by Darryl Ince. As the name suggests, it covers a lot of material on traditional data structures, but shifts focus towards how these fit into modern OO design and covers about 8 or so of the GoF patterns in a very readable manner. The coverage of design patterns is very good - I found it gave me a more immediate grasp of a couple of them than reading the corresponding chapters in Cooper. If you feel quite confident in OO and are looking for the quickest and most accessible entry into patterns, I would recommend the Shalloway book first, followed by GoF at a later date. Hope this helps. Michael ------------------ "One good thing about music - when it hits, you feel no pain" Bob Marley
"One good thing about music - when it hits, you feel no pain" <P>Bob Marley
I would like to mention that the two (Excellent) books mentioned above, Design Patterns (Gamma, et. al.) and Core J2EE Patterns (Alur, et. al.) are aimed at TOTALLY different levels of abstraction. It's not "which one do I choose" but in fact to build J2EE systems you truly need both. Design Patterns gives you a vocabulary for understanding how do do modular OO design in general. It contains a basic set of principles that you need to grasp regardless of whether you are using J2EE or not. However, J2EE has its own set of basic principles that are specific to the problem space and the API sets. That is what Core J2EE patterns gives you. I would strongly suggest (as I do to all my customers) that you buy both books. ------------------ Kyle Brown, Author of Enterprise Java (tm) Programming with IBM Websphere
Kyle great to see your still around . We have "Design Patterns" here at work and yes maybe its a great book but heck I've tried reading it twice and had a hard time staying awake. It's also my general impression that books about patterns are very dry and difficult to understand. I get the feeling that they mostly are of value once you've worked on a few OO projects. Then you get the "light" going off. "Hey I/we had the same "problem" in our project". Is that correct?
Hi all. As I know, each specific design pattern is different from each different languages. In terms of Java design pattern, what's the basic principle design pattern currently ? Is it also depending on the specific project ?
I'm surprised nobody mentioned Bruce Eckel's Thinking in Patterns with Java. It's at this URL: http://www.mindview.net/Books/TIPatterns/ It's still a work in progress, and unfortunately I haven't read it so I can't offer an opinion. But Bruce is one of the clearest writers I've encountered (he's the author of Thinking in Java), so I think this (free) book is worth a look.
I've gotten several questions on Javaranch in different topics about our book, so I put a post that I am referring to under the topic: "Design Patterns Explained: what it's about" There are also 3 chapters in the book you can find by looking further in the topic.
Alan Shalloway.<BR>Look for Jim Trott and my book: <A HREF="http://www.amazon.com/exec/obidos/ASIN/0201715945/ref=ase_electricporkchop/103-0514572-3811868" TARGET=_blank rel="nofollow">Design Patterns Explained</A><BR>Visit our site <A HREF="http://www.netobjectives.com" TARGET=_blank rel="nofollow">Net Objectives</A>.<BR>Visit our <A HREF="http://www.netobjectives.com/dpexplained/index.html" TARGET=_blank rel="nofollow">Design Patterns Explained Community of Practice</A><BR>Check out our <A HREF="http://www.netobjectives.com/xml/xml_cdrom_info.htm" TARGET=_blank rel="nofollow">CDROM based audio training in XML</A>
Joined: Nov 22, 2008
Wow! Thank you everyone for your replies! I've also found a copy of The Design Patterns Java Companion, by James W. Cooper. Has anyone read this? -Miftah
Core J2EE Patterns: Best Practices and Design Strategies is not bad but no source code. Much of this can be found on the Sun Java site.
Joined: Sep 27, 2001
As posted by Burkhardt Hufnagel "Java(tm) Design Patterns: A Tutorial" by William Cooper can be downloaded from the website http://www.patterndepot.com/put/8/DesignJavaPDF.ZIP This book is simple and good for beginners but surely not the greatest available in the market. However, I have been able to implement decorater ,builder and factory patterns quite successfully after reading this book Ruby
Joined: Aug 10, 2001
Originally posted by Johannes de Jong: Kyle great to see your still around . We have "Design Patterns" here at work and yes maybe its a great book but heck I've tried reading it twice and had a hard time staying awake. It's also my general impression that books about patterns are very dry and difficult to understand. I get the feeling that they mostly are of value once you've worked on a few OO projects. Then you get the "light" going off. "Hey I/we had the same "problem" in our project". Is that correct?
Miftah, I have used GoF and browsed thru some others (specifically those with "Java" and "Patterns" both in their title). Personally, I did not like anything better than this: Applying UML and Patterns by Craig Larman. It would be with you for as long as OOAD lives because he talk about Pattern fundamentals. Absolute bare minimum principles that make up even the GoF patterns. Now that every one is creating patterns with different names, you would be on good grounds if you learnt the fundamentals from Larman's book and recognize the motivations behind various patterns. He calls them the GRASP principles and explains most of the famous patterns as being made up of these fundamental building blocks. Larman's book is phenomenal as it also describes where Patterns and UML fit in the whole process. It is sad to see that Larman's book is categorized primarily as a UML book and not a Patterns book. Nobody except James discussed it here in this thread! Enough said. Now, go to a bookstore, pick up GoF book and Larman's book, and any other book on patterns. Go with your heart. Hope it helps Sanjeev
Joined: Sep 26, 2001
Forgot to mention one of my favorite books that I haven't seen posted here. It's Peter Coad's Java Design. This is a must read, in my opinion, for all java developers. It's the best design book i've seen anywhere, but is, of course, only useful for java developers. He doesn't talk about patterns in the book, but he uses their principles. I buy a copy for each of my new employees (along with a copy of my own book of course Actually, while I'm at it (I can anticipate the question now i'll list some of my favorite books: UML Distilled XP Explained Refactoring ------------------ Alan Shalloway, Look for Jim Trott and my book: Design Patterns Explained Visit our site Net Objectives. Visit our on-line companion to the book
Joined: Feb 13, 2001
Originally posted by Alan Shalloway: ... Actually, while I'm at it (I can anticipate the question now i'll list some of my favorite books: UML Distilled XP Explained Refactoring
Alan, thanks for reminding ... I have just updated my dream collection and revived that low-lying thread in this forum. Take a look, all the books you mentioned here, are present in that brief list of 7 books! I polled people in this forum, then visited bookstores and compiled a hit-list. If it ever grows bigger than, say 10, I would take UML Distilled away . regards Sanjeev