Паттерн: Фабричный метод (Factory Method)
Фрагмент: Параметризованный фабричный метод [C++]
  1. class Creator {
  2. public:
  3. virtual Product* Create(Productld);
  4. };
  5.  
  6. Product* Creator::Create (Productld id) {
  7. if (id == MINE) return new MyProduct;
  8. if (id == YOURS) return new YourProduct;
  9. // выполнить для всех остальных продуктов...
  10. return 0;
  11. }