|All reviews||Design Patterns: Elements of Reusable Object Oriented Software||Latest reviews||Best sellers ranking|
Design Patterns: Elements of Reusable Object Oriented Software
Software development books
December 14, 1994
Week: 69 All time: 30
manuellemos.netThe first step that an engineer should take to solve a problem is to study previous attempts that others made to solve the same or similar problems. This should be particularly true with software engineering problems.
Studying what others have tried to solve a type of problem provides opportunities to learn about already tried solutions that frequently represent the best practices that lead to better results.
Sometimes the it is worth studying tried solutions to problems that are not exactly the same as the problems that we need to solve, but we reckon in them some patterns that match details our problems or at least part of our possible solutions. This is often the beginning of a well designed solution and the basis of the whole evolution.
Design Patterns is a classic book that addresses the identification of well known patterns that are frequently used in the design of object oriented software.
To take full advantage of this book you need to understand well the concepts of object oriented programming, but this is already an usual requirement for system analysts and project managers that are in charge of reasonably sized software.
The book is divided in three main parts: an introduction to the concepts and the importance of design patterns, a case study project that serves as example of application of the patterns presented in the book and a catalog of the different design patterns that are detailed in this book.
The design patterns that are presented were divided in three parts: creational patterns that have to do with the abstraction of object instantiation, structural patterns that address the composition of complex structures and behavioral patterns that are concerned with algorithms and the assignment of responsibilities between objects.
If you understand and agree with the expression 'to never reinvent the wheel', this is certainly a book that you MUST HAVE in your personal book shelf. Studying with this book may save you from failed attempts to solve problems that many others have tried to proved design solutions that often represent the software design best practices.