Also, if the example stuck a little more real life instead of focusing on a single topic, this would allow the reader a better understanding and thus easier to adapt certain patterns.
Finally, the coding conventions are not respected: non-prefixed interfaces of a capital "I", the names of public methods without a capital and so on. For a book that is supposed to learn good programming practices, it is a little way.