// ********** FactoryDemo.cpp ********** #include #include using namespace std; class Product { public: virtual void operation() = 0; }; class ConcreteProduct1 : public Product { public: void operation() {} }; class ConcreteProduct2 : public Product { public: void operation() {} }; class Factory { public: static Product* createProduct(int code) { switch (code) { case 1: return new ConcreteProduct1(); case 2: return new ConcreteProduct2(); } return 0; } }; const int MAX = 1000; int main() { hrtime_t t1 = gethrtime(); for (int i=0; i<10*MAX; i++) { Product* product1 = Factory::createProduct(1); Product* product2 = Factory::createProduct(2); for (int j=0; joperation(); product2->operation(); } } hrtime_t t2 = gethrtime(); cout << (t2-t1)/1000000 << " "; return 1; }