familiar patterns that keep coming up in coding problems. After zooming in
on the nuts and bolts and syntax of Java coding it's a help to zoom out and see
ways of "extending" it to bigger problems. There is classic book on
Object Oriented program design called
 | Design Patterns |
| 0-201-63361-2 |
| Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides |
| The publisher is Addison Wesley. Sometimes called "the gang of four book" They define design patterns as: descriptions of communicating objects and classes that are customised to solve a general design problem in a particular context. A design pattern names, abstracts, and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. The design pattern identifies the participating classes and instances, their roles and collaborations, and the distribution of responsibilities. Easy to wrap your mind around, eh? Design Pattern people are in love with the power of abstraction and generality. You might even say they prefer to impress rather than inform. However, somehow you are going to have to learn this stuff, even if only to get into the heads of the guys who designed the AWT. Try starting with the code samples in the Design Patterns book. |
|
|
 | Design Patterns Java Workbook |
| 0-201-74397-3 |
| Steven John Metsker |
| More approachable than the other Design Pattern books. You can look at the source code examples from the book. |
|
|
 | Design Patterns In Java |
| 0-471-25839-3 |
| 0-471-25839-3 |
| A more accessible book, partly because the examples are all in Java and partly because he has less invested in persuading you how important and brilliant their discoverers are. |
|
|
 | Java Design Patterns |
| 0-201-48539-7 |
| James Cooper |
| A tutorial |
|
|
 | Applied Java Patterns |
| 0-13-093538-7 |
| Stephen A. Stelting, Olav Maassen |
|
|
|
 | Java Design: Building Better Apps and Applets |
| 0-13-911181-6 |
| Peter Coad, Mark Mayfield, Pete Coad and Jon Kern |
| A more general book, but does a better job of explaining how Java interfaces can be used to create better design patterns. |
|
|
 | Data Modeling for Information Professionals |
| 0-13-080450-9 |
| Bob Schmidt and David Warren |
| Good at describing how to break problems down into an OO solution without any regards to implementation. |
|
|
 | Java in Practice : Design Styles and Idioms for Effective Java |
| 0-201-36065-9 |
| Nigel Warren and Phil Bishop |
| Good at describing how to break problems down into an OO solution without any regards to implementation. |
|
|
 | Essential Java Style: Patterns for Implementation |
| 0-13-085086-1 |
| Jeff Langr |
| It's not about the patterns people usually talk about (design, architecture etc) but about low-level coding patterns and good practices. |
|
|
 | Core J2EE Patterns: Best Practices and Design Strategies |
| 0-13-064884-1 |
| Deepak Alur, John Crupi, Dan Malks |
|
|
|
 | Object-Oriented Programming and Java |
| 981-308396-4 |
| Danny C. C. Poo and Derek B. K. Kiong |
|
|
|
 | Refactoring |
| 0-201-48567-2 |
| Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts |
| Discusses how reorganising code into standard patterns makes it easier to maintain. Highly recommended. Practical before and after examples of cleaning up stinking code. |
|
|
 | Effective Java Programming Language Guide |
| 0-201-31005-8 |
| Joshua Bloch |
| No design patterns, just generic advice on good Java programming style. |
|
|
 | Object-Oriented Design Heuristics |
| 0-201-63385-X |
| Arthur J. Riel |
| Great book for arguing for easier-to-maintain architectures. |
|
|
Standard patterns include:
Creational Patterns:Abstract Factory, builder, Factory
Method, Prototype, Essence,
Singleton.
Structural Patterns: Adapter, Bridge, Composite, Decorator,
Facade, Flyweight, Proxy.
Behavioural Patterns: Chain Of Responsibility, Command,
Interpreter, Iterator, Mediator, Memento, Observer,
State, Strategy, Template Method and Visitor.
Model-View-Controller
J2EE also has design patterns that are documented in the
book Core J2EE Design Patterns. These design patterns include:
-
Service to worker
-
Dispatcher View
-
Front Controller
-
View Helper
-
Synchronize (Déjà vu) Token
 | Core J2EE Patterns: Best Practices and Design Strategies, Second Edition |
| 0-13-142246-4 |
| Deepak Alur |
| Design patterns to use in J2EE. |
|
|
 | Small Memory Software: Patterns for Systems with Limited Memory |
| 0-201-59607-5 |
| James Noble, Charles Weir |
| Techniques for conserving RAM in embedded systems and handheld devices. Much of this is the techniques used in the early computers with limited RAM. |
|
|