基于 C++17 实现 23 种 GoF 设计模式,使用智能指针来避免内存泄漏。Implement 23 GoF design patterns in C++17, make proper use of smart pointers to avoid memory leak.