LintCode:玩具工厂

来源:互联网 发布:网络挣钱 编辑:程序博客网 时间:2024/04/29 07:05

工厂模式是一种常见的设计模式。请实现一个玩具工厂 ToyFactory 用来产生不同的玩具类。可以假设只有猫和狗两种玩具。

样例
ToyFactory tf = ToyFactory();Toy toy = tf.getToy('Dog');toy.talk(); >> Wowtoy = 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 herepublic:    void talk()const    {        printf("Wow");    }};class Cat: public Toy {    // Write your code herepublic:    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;    }};

0 0