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;
}
};

lintcode-496-玩具工厂的更多相关文章

  1. lintcode:玩具工厂

    题目 工厂模式是一种常见的设计模式.请实现一个玩具工厂 ToyFactory 用来产生不同的玩具类.可以假设只有猫和狗两种玩具.   样例 ToyFactory tf = ToyFactory(); ...

  2. [LintCode] Toy Factory 玩具工厂

    Factory is a design pattern in common usage. Please implement a ToyFactory which can generate proper ...

  3. lintcode:形状工厂

    题目 工厂模式是一种常见的设计模式.实现一个形状工厂 ShapeFactory 来创建不同的形状类.这里我们假设只有三角形,正方形和矩形三种形状. 样例 ShapeFactory sf = new S ...

  4. BI数据分析中KPI,KGI,CSF概念

    1. 行为产生数据 先来谈一谈,自己对数据基础概念的思考.我认为首先要建立的核心观点是:行为产生数据. 翻译一下这个核心观点.意思就是,当我们在思考或描述数据相关需求的时候,必然要包含这样的语素:&q ...

  5. CountDownLatch 计数器

    这里我暂时只讲CountDownLatch的作用和怎么使用,至于他是怎么实现这种功能的,涉及源码,以后我再补上. 正文 什么是CountDownLatch? CountDownLatch是在java1 ...

  6. 【Go语言入门系列】(九)写这些就是为了搞懂怎么用接口

    [Go语言入门系列]前面的文章: [Go语言入门系列](六)再探函数 [Go语言入门系列](七)如何使用Go的方法? [Go语言入门系列](八)Go语言是不是面向对象语言? 1. 引入例子 如果你使用 ...

  7. [LintCode] Shape Factory 形状工厂

    Factory is a design pattern in common usage. Implement a ShapeFactory that can generate correct shap ...

  8. [LintCode]——目录

    Yet Another Source Code for LintCode Current Status : 232AC / 289ALL in Language C++, Up to date (20 ...

  9. .NET设计模式(5):工厂方法模式(Factory Method)(转)

    工厂方法模式(Factory Method) ——.NET设计模式系列之五 Terrylee,2004年1月2日 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实 ...

随机推荐

  1. Mysql完全卸载(Windows版本)

    (1)控制面板 ---> 程序和功能 ---> 卸载MySQL Installer: (2)删除MySQL软件安装路径下的MySQL目录,默认目录为 C:\Program Files (x ...

  2. [Golang学习笔记] 06 程序实体3 类型断言和类型转换

    类型断言: 语法:<目标类型的值>,<布尔参数> := <表达式>.( 目标类型 ) // 安全类型断言<目标类型的值> := <表达式>. ...

  3. go 网络请求篇

    ---恢复内容开始--- 今天特意找了下go的网络请求篇,get请求是ok的,post请求一直不下来,搜索了下,代码都差不多,无法拿到post数据,先整理一篇,亲测可用. 针对post ,先来说下po ...

  4. 20155210 潘滢昊 Java第三次实验

    Java第三次实验 实验内容 在IDEA中使用工具(Code->Reformate Code)把代码重新格式化 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二 ...

  5. 20155217 2016-2017-2 《Java程序设计》第2周学习总结

    20155217 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 Java中的基本类型主要可分为整数.字节.浮点数.字符与布尔. 整数可分为short整数(占 ...

  6. 20155234 实验三 敏捷开发与XP实践

    20155234 实验三 敏捷开发与XP实践 实验内容 1.XP基础 2.XP核心实践 3.相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发(Agile Development)是一种以人为核心.迭 ...

  7. 20155305乔磊2016-2017-2《Java程序设计》第四周学习总结

    20155305乔磊2016-2017-2<Java程序设计>第四周学习总结 教材学习内容总结 继承 继承就是避免多个类间重复定义共同行为. 面向对象中,子类继承父类,就是把程序中相同的代 ...

  8. 【SAP BI】BW如何连接SQLSERVER数据库

    一.工具 源版本: SQLSERVER2008  数据库TEST 目标版本:  SAP 客户端 7.4  服务器7.5 二.在BW中建立数据库连接,并生成数据源 2.1  登录SAP BW开发机 ,输 ...

  9. 【转载】3D/2D中的D3DXMatrixPerspectiveFovLH和D3DXMatrixOrthoLH投影函数详解

    原文:3D/2D中的D3DXMatrixPerspectiveFovLH和D3DXMatrixOrthoLH投影函数详解 3D中z值会影响屏幕坐标系到世界坐标系之间的转换,2D中Z值不会产生影响(而只 ...

  10. Python socket网络模块

    一.基于TCP协议的socket通信 以打电话为理解方式进行TCP的通信. Server端代码: import socket phone = socket.socket(socket.AF_INET, ...