- Sum up the book in one sentence.
This book teaches us how to design a great software using object-oriented principle.
- Who is the intended audience for the book?
For those who know basic java, want to learn, understand, remember and apply object-oriented design to real-world projects. Also for those who wants to simulating dinner party conversation to dry, dull, academic lecture. In other words, if you want to transfer real word situation to program, you should read this book.
- Who do you think would benefit most from this book?
For anyone who has some knowledge about object-oriented language but does not know how to write their own code for solving real life problem.
- What does the book cover?
This book covers lots of prospective in regards of software design. it talks about the three important steps in software design. They are, first:Make sure your software does what the customer wants it to do. Second: Apply basic OO principles to add flexibility. 3. Strive for a maintainable, reusable design. The rest of the books just go through these three steps with many details and scenarios.
In terms of the first step, the book’s suggestion is that pay attention to what the software needs to do. Creating a requirement list or feature list for big projects is always a first step and then thinking about how to do. In order to meet such requirements, programmers have to figure out potential problems in real life because customer’s requirements might not be specific and customers usually do not provide programmers with the context that software is running,
As for OO design principle, it covers Encapsulation for deleting duplicate code. Using Abstract class to reuse the behavior in the common class which is referred as “Don’t repeat yourself principle” in the book. Application of Is-a and has-a relationship.
- Was the material in the book useful to you?
The material in this book is very useful to me since object-oriented design principle could solve many real-life problems.
- What was the most important thing you learned from this book?
The most important thing I learned is how to figure out where to start writing my program. First of all, I have to know the architecture. Putting every small details together to get a bigger picture. The relationship among each small details usually tell us where we should start. It tell us which part is the most important. Ask my self three questions,
1: What is the most important requirement list in the system?
2: what the description of a particular requirment really means?
3: how should I implement this requirement?
- Would any of the material from this book be useful in earlier CS courses? Which ones?
This book could be an extra reading material for CS140. Basically, this book teachs people how to think problem in terms of objects. It gives students a chance to know the idea behind the complex java grammar.
- Did you enjoy reading this book?
I really enjoy reading this book. This book talks about serious software design principle but it uses the daily language and lots of pictures to represent concept. In one word, this book is very brain –friendly
- Would you recommend it to others?
- Would you buy your own copy?
Some critical thinking about object-oriented design:
Object-oriented design concept has been abused for long time. Certain key can only open certain door. Object-oriented principle design is not right tool for everything. Many object-oriented language forces us to think things in object way. But the human mind is delightfully capable of holding many ‘views’ or ‘models’ of our perceptions at once. an object in human perception is just one way of viewing the world. OO forces us to pick just one ‘model’ and entrench it in our program.