public function getProducerFactory($string) { $factory = new FactoryProducer(); return $factory->getFactory($string); }
} if (strtoupper($factoryType) == "RED") { return new RedShapeFactory(); } else { if (strtoupper($factoryType) == "GREEN") { return new GreenShapeFactory(); } else { if (strtoupper($factoryType) == "BLUE") { return new BlueShapeFactory(); } } } return NULL; } } $producer = new FactoryProducer(); // producing set of red widgets $redFactory = $producer->getFactory("Red"); $shape1 = $redFactory->getShape("CIRCLE"); $shape2 = $redFactory->getShape("RECTANGLE"); $shape3 = $redFactory->getShape("SQUARE"); $shape1->draw(); $shape2->draw(); $shape3->draw(); // producing set of green widgets $greenFactory = $producer->getFactory("Green"); $shape4 = $greenFactory->getShape("CIRCLE"); $shape5 = $greenFactory->getShape("RECTANGLE"); $shape6 = $greenFactory->getShape("SQUARE"); $shape4->draw(); $shape5->draw();