原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其本质是对对象(或者数据)的拷贝。通俗来说,就是将对象复制一份,原型实例指的就是被复制的对象。

代码实现

  1. class data
  2. {
  3. public:
  4. data () {}
  5. virtual ~data() {}
  6. virtual class data* copy() = 0;
  7. };
  8. class data_A : public data
  9. {
  10. public:
  11. data_A() {}
  12. ~data_A() {}
  13. class data* copy()
  14. {
  15. return new data_A();
  16. }
  17. };
  18. class data_B : public data
  19. {
  20. public:
  21. data_B() {}
  22. ~data_B() {}
  23. class data* copy()
  24. {
  25. return new data_B();
  26. }
  27. };
  28. class data* clone(class data* pData)
  29. {
  30. return pData->copy();
  31. }

应用场景

  1. 当一个类的实例创建过程很复杂,但我们又需要很多这样的实例