其他
设计模式之原型模式
——冰心 |
#include <iostream>
struct Animal {
virtual ~Animal() {}
virtual Animal* Clone() = 0;
virtual void ShowName() = 0;
};
struct Tiger : public Animal {
Animal* Clone() override { return new Tiger(); }
void ShowName() override { std::cout << "Tiger" << std::endl; }
};
int main() {
Animal* animal = new Tiger();
animal->ShowName();
Animal* animal_copy = animal->Clone(); // 想要一个和animal完全相同的实例
animal_copy->ShowName();
return 0;
}
参考资料
https://www.runoob.com/design-pattern/prototype-pattern.htmlhttp
https://www.zhihu.com/question/52610176
往期推荐