Factory is a design pattern in common usage. Please implement a ToyFactory which can generate proper toy based on the given type.
Example
ToyFactory tf = ToyFactory();
Toy toy = tf.getToy('Dog');
toy.talk();
>> Wow
toy = tf.getToy('Cat');
toy.talk();
>> Meow
這道題還是考察工廠模式Factory Pattern的題,跟之前那道Shape Factory沒有啥區別,難度並不是很大,參見代碼如下:
/** * Your object will be instantiated and called as such: * ToyFactory* tf = new ToyFactory(); * Toy* toy = tf->getToy(type); * toy->talk(); */ class Toy { public: virtual void talk() const=0; }; class Dog: public Toy { void talk() const { cout << "Wow" << endl; } }; class Cat: public Toy { void talk() const { cout << "Meow" << endl; } }; class ToyFactory { public: /** * @param type a string * @return Get object of the type */ Toy* getToy(string& type) { if (type == "Dog") { return new Dog(); } else if (type == "Cat") { return new Cat; } return NULL; } };
類似題目: