工厂模的智能化实现.docVIP

  • 3
  • 0
  • 约2.9万字
  • 约 5页
  • 2017-06-15 发布于河南
  • 举报
工厂模的智能化实现

由名字创建对象其实的有挺强的背景,那就是软件工程学中的对象持久性问题。本文讨论的方法也是持久性的一个可能实现。废话少说,看看C++是怎么做的。 动态创建当然要用指针。我们不希望在程序中出现硬编码: Shape * pShape = new Circle; 那就用函数/对象包装一下。函数包装简单、高效一些。于是有Circle类的成员函数: Shape *createInstance() {return new Circle;} 我们需要用这个函数去创建Circle对象,同时只有Circle对象创建以后才可以调用createInstance()。这是一对矛盾。解决的办法是将createInstance()写成静态函数。于是Shpae和Circle类长的是这个样子: class Shape{ public: virtual void Draw() = 0; }; class Circle : public Shape{ public: void Draw() { std::cout Drawing a Circle......Done std::endl; } static Shape *createInstance() {return new Circle;} }; 指向createInstance()的函数指针当然要放在工厂类里面,同时

文档评论(0)

1亿VIP精品文档

相关文档