class Creator {public: virtual Product* Create(Productld);}; Product* Creator::Create (Productld id) { if (id == MINE) return new MyProduct; if (id == YOURS) return new YourProduct; // выполнить для всех остальных продуктов... return 0;}