Design Patterns by C++