Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
An introduction to design patterns in C++ with Qt 4 (Bruce Perens’ Open Source)
Ezust A., Ezust P., Prentice Hall PTR, Upper Saddle River, NJ, 2006. 656 pp. Type: Book (9780131879058)
Date Reviewed: Oct 22 2007

There are many books on programming languages, or on application frameworks, or on design patterns, and so on. Some try to squeeze a few distinct topics into a single book, which is a difficult thing to do well. This book is different. Although it covers such diverse topics as C++, Qt 4, design patterns, and some basic unified modeling language (UML), the authors manage to create a coherent textbook on writing software.

The book is intended for use in a university class on object-oriented (OO) programming with C++. Designing assignments for programming courses is a common problem: if they are too easy and artificial, the students will get bored and won’t learn much. On the other hand, real-life examples often require so much overhead that the very topic they are to demonstrate is lost. Using Qt, a popular cross-platform class library and application framework, allows for interesting examples without the need for additional libraries that might blur the picture. The book uses Qt 4, which is incompatible with Qt 3: the authors do warn that the examples won’t work with the latter. This is rather inconvenient, since currently Qt 3 is still more common, as it is bundled with each popular Linux distribution that includes the current versions of K desktop environment (KDE). On the other hand it should make the book relevant for longer.

There are five parts. The book starts with a C++ primer, very basic UML, and simple Qt 4 examples. Part 2 is the most important and covers more advanced topics: design patterns; containers; Qt widgets; modules for Extensible Markup Language (XML) and structured query language (SQL) processing; process and thread management; and reflective programming. The last three parts include C++ language references, programming exercises, and appendices.

The design patterns included in the book are selected from the “classic” patterns of the “gang of four” or Buschmann. This is consistent with its purpose as a university textbook on OO programming. The examples implement these patterns in the context of the Qt framework. This achieves two purposes: showing a working implementation of each pattern and teaching the proper use of classes from the Qt framework.

My overall impression of this book is positive. It certainly delivers as a textbook on software development. It will help people learn not just how to use C++ but how to actually write useful programs. I also liked the examples in the book, which are specifically designed to do something useful rather than something purely academic. I have one minor criticism about the examples and in particular the comments: they are not comprehensive for a book supposedly suitable for readers without previous knowledge of C or C++.

Reviewer:  Maciej Golebiewski Review #: CR134859
Bookmark and Share
  Reviewer Selected
 
 
Design Tools and Techniques (D.2.2 )
 
 
C++ (D.3.2 ... )
 
 
Patterns (D.2.11 ... )
 
 
Language Classifications (D.3.2 )
 
 
Language Constructs and Features (D.3.3 )
 
 
Software Architectures (D.2.11 )
 
Would you recommend this review?
yes
no
Other reviews under "Design Tools and Techniques": Date
Information-flow and data-flow analysis of while-programs
Bergeretti J., Carré B. ACM Transactions on Programming Languages and Systems 7(1): 37-61, 1985. Type: Article
Jul 1 1985
An extensible toolset and environment for the production of mathematical software
Osterweil L., Clemm G.  Tools, methods and languages for scientific and engineering computation (, Paris, France,361984. Type: Proceedings
Sep 1 1985
A system for interactive viewing of structured documents
Witten I., Bramwell B. Communications of the ACM 28(3): 280-288, 1985. Type: Article
Mar 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy