|< Free Open Study >|| |
Industry-recognized standards and guidelines help those involved with a project to communicate in a consistent and effective way. For example, we can use the Unified Modeling Language (UML) to represent the design of an application.
In the same way that coding conventions are important when writing source code, the use of a standard means of documenting designs is also important, especially when reviews and walkthroughs are undertaken. Such documentation allows the developer to question the business and its methods by giving them a platform that be understood by non-technical personnel.
Design patterns capture reusable solutions to common design problems, and provide a common language with which to describe them. In "Design Patterns, Elements of Reusable Object-Orientated Software" (Addison Wesley, ISBN 0201633612) 24 common design problems are described and considered. Many other patterns in software development have been documented, including some directly related to J2EE development.
The J2EE patterns catalog documents a number of patterns that provide solutions to frequently encountered problems in the design and implementation of J2EE applications. This includes issues such as decreasing the number of fine-grained method calls across the network by using value objects, encapsulating business logic and workflow into session beans through a session façade, and accessing large amounts of read-only data through data access objects. The catalog also contains patterns that are relevant when designing the presentation tier of J2EE applications.
Detailed information on all of the patterns contained within the J2EE patterns catalog can be found at http://developer.java.sun.com/developer/technicalArticles/J2EE/patterns/.
Without patterns it is still possible to build fairly complex systems that achieve the desired end goal. However, the problem with this approach is that more often than not, the way that problems are tackled and subsequently solved within the application may not be consistent. This inconsistency decreases the maintainability of the application.
Although using patterns does tend to increase the initial complexity of the implemented solution, patterns are an important tool for helping us structure our applications in a proven and consistent manner. Each component has a predefined purpose and a predefined way in which to interact with the others involved in the system. This is good from a maintainability perspective because it is easier to get to grips with a system based upon familiar, common structures than one that isn't.
In addition to this, some of the patterns are optimized for high performance and scalability. Another important benefit of using patterns is that they also provide developers with a standard way of communicating design ideas.
|< Free Open Study >|| |