- Toy Factory
中文English
Factory is a design pattern in common usage. Please implement a ToyFactory which can generate proper toy based on the given type.
Example
Example 1:
Input:
ToyFactory tf = ToyFactory();
Toy toy = tf.getToy(‘Dog’);
toy.talk();
Output:
Wow
Example 2:
Input:
ToyFactory tf = ToyFactory();
toy = tf.getToy(‘Cat’);
toy.talk();
Output:
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 {
public:
void talk() const {
cout<<"Wow"<<endl;
}
};
class Cat: public Toy {
public:
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 == "Cat") {
return new Cat();
} else if (type == "Dog") {
return new Dog();
} else {
return NULL;
}
}
};
本文介绍了一个简单的玩具工厂设计模式实现,该模式可以根据不同的输入类型创建相应的玩具实例(如Dog或Cat),并演示了如何让这些玩具实例执行特定行为。
175

被折叠的 条评论
为什么被折叠?



