Design Patterns in Java: Evaluating an Objective-Oriented Design of the Expression Tree Processing App
Despite continuous improvements in hardware processors, storage, and networks, developing quality software on-time and under budget remains difficult. Moreover, developing high quality, reusable software is even more challenging. The principles, practices, and skills required to develop such software are best learned by attaining mastery of patterns and frameworks. A pattern describes a reusable solution to a common problem that arises within a particular context of software design. When related patterns are woven together they provide a vocabulary and a process for the orderly resolution of software development problems. A framework is an integrated set of software components that collaborate to provide a reusable architecture for a family of related applications. Frameworks can also be viewed as concrete realizations of patterns that facilitate direct reuse of detailed designs and source code.