百度前端技术学院是一个为大学生创办的免费的前端技术实践、分享、交流平台。由百度校园招聘组、百度校园品牌部、百度前端技术部以及多个百度的前端团队联合创办。学院组织了一批百度在职工程师,精心编写了数十个实践编码任务,将技术知识点系统有机地串联在各个充满趣味与挑战的任务中,同学们通过实际地编码练习来掌握知识,再辅以互相评价、学习笔记等方式,加深对于学习内容的理解。在过去的三年中,百度前端技术学院累积吸引了上万名同学参加,并且有数十名同学在学习后,顺利加入了百度,成为了百度的前端工程师。

第四十二天到第四十三天:开一家餐厅吧(一)

进阶

人数183人在学习该课程,有136人已经完成该课程

时间平均用时1.1

关键词JavaScript

课程概述

作业提交截止时间:09-01

第四十二天到第四十三天:开一家餐厅吧(一)

课程目标

通过一个新的系列课程,我们来学习更多的JavaScript知识,比如如何在JavaScript使用面向对象编程,如何在你的设计中应用设计模式.

课程描述

需求

我们现在要开一个餐厅啦,餐厅里面有服务员,有厨师,有顾客。学习面向对象,为餐厅和几个角色创建自己的类吧。

餐厅可以招聘或者解雇职员,职员越多,就越能够满足更多的顾客需求,从而赚取更多的钱

餐厅里的容量是有限的,当顾客坐满了,其他顾客需要排队

服务员的工作有两个职责,一个是负责点菜,另外一个是上菜

厨师的职责就一个,烹饪食物

顾客可以做两件事情,一个是点菜,一个是吃

系列任务的第一个部分,我们先只实现类的编写。并通过大量阅读掌握JavaScript的面向对象编程

阅读

设计

下面的设计只是草案,根据自己理解和需要自行设计

  • 餐厅类
    • 属性:金钱,座位数量、职员列表
    • 方法:招聘职员,解雇职员
  • 职员类
    • 属性:ID,姓名,工资
    • 方法:完成一次工作
  • 服务员类,继承自职员
    • 完成一次工作:如果参数是个数组,则记录客人点菜,如果参数不是数组则是上菜行为
  • 厨师类,继承自职员
    • 完成一次工作:烹饪出菜品
  • 顾客类
    • 方法:点菜,吃
  • 菜品类
    • 属性:名字、烹饪成本、价格

编码

  • 请分别使用 ES5 和 ES6 来实现以上类的定义

测试用例

测试用例伪代码,在Chrome控制台中执行

var ifeRestaurant = new Restaurant({
    cash: 1000000,
    seats: 20,
    staff: []
});

var newCook = new Cook("Tony", 10000);
ifeRestaurant.hire(newCook);

console.log(ifeRestaurant.staff);

ifeRestaurant.fire(newCook);
console.log(ifeRestaurant.staff);

提交

把你的代码放在Github后进行提交

总结

依然把今天的学习用时,收获,问题进行记录

下一个任务预告

明天我们继续该任务的下一个环节

学员提交的作业 (-)
学员名称提交时间提交的代码预览效果评价数平均得分操作
课程优秀学习笔记

暂无优秀学习笔记~