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的题,跟之前那道没有啥区别,难度并不是很大,参见代码如下:
/** * 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; }};
本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。