工厂模式是一种常见的设计模式。请实现一个玩具工厂 ToyFactory
用来产生不同的玩具类。可以假设只有猫和狗两种玩具。
ToyFactory tf = ToyFactory(); Toy toy = tf.getToy('Dog'); toy.talk(); >> Wow toy = tf.getToy('Cat'); toy.talk();
>> Meow
代码:
/** * 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 { // Write your code here public: void talk()const { printf("Wow"); } }; class Cat: public Toy { // Write your code here public: void talk()const { printf("Meow"); } }; class ToyFactory { public: /** * @param type a string * @return Get object of the type */ Toy* getToy(string& type) { // Write your code here Toy* toy; if(type == "Dog") toy = new Dog(); else toy = new Cat(); return toy; } };