496-玩具工厂

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

您在真实的面试中是否遇到过这个题? Yes

样例

 ToyFactory tf = ToyFactory();
Toy toy = tf.getToy('Dog');
toy.talk();
>> Wow toy = tf.getToy('Cat');
toy.talk();
>> Meow

code

/**
* 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\n");
}
}; class Cat : public Toy {
// Write your code here
void talk() const {
printf("Meow\n");
}
}; 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;
}
};

最新文章

  1. Intellij Idea/Webstorm/Phpstorm 的高效快捷键
  2. 【原】iOS学习之tableView的常见BUG
  3. sum data
  4. PHPExcel创建文件格式写入对象实例
  5. SuperSlide
  6. SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'
  7. iOS正则匹配手机号
  8. NodeJS V8 GC概览
  9. sqlserver access 多数据库操作
  10. Android Activity与Service的交互方式
  11. 利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(1)
  12. [置顶] 如何使用c3p0+spring连接oracle数据库
  13. js在关闭页面前弹出确认提示【转载】
  14. redhat 安装GCC-4.8.3
  15. spring-AOP-基于@AspectJ切面的小例子
  16. 20170222==(MODBUS读取多个寄存器)
  17. vue项目向小程序迁移调研
  18. 3 数据分析之Numpy模块(2)
  19. javeEE第二周
  20. UVA1646-Edge Case(递推+斐波那契数列)

热门文章

  1. tp5 的nginx配置
  2. [上架] iOS 上架更新版本号建议
  3. nodejs知识点
  4. 批量复制windows文件夹下所有文件名
  5. Verilog HDL 使用规范(一)
  6. HDFS(0.20.2)运营中急救方案
  7. 20155206 《Java程序设计》实验三实验报告
  8. linux内存碎片的概念
  9. 20155213 实验四 Android程序设计
  10. 20155304 2016-2017-2 《Java程序设计》实验五(网络编程与安全)实验报告