OOD是技术面试中几乎必考的问题,是每个小白必须要跨过的一道坎。最近有网友爆料称:自己在面试微软的时候,一道OOD做了50分钟
我们先来一起看下这道让面试者“崩溃”的题目:
设计井字棋游戏
  • 棋盘的尺寸为3
  • X 总是先行动走出第一步
  • 如果一个位置已经被占,且一名玩家打算占领该位置,一个AlreadyTakenException信息将被抛出
  • 如果一名玩家胜利,且有玩家打算继续行动,一个GameEndException信息将被抛出
  • 如果所有的地方都已被占领,你需要输出"it's a draw"
LintCode答案:
输入:
move(0, 0) // X 的回合
move(1, 0) // O 的回合
move(1, 1) // X 的回合
move(2, 0) // O 的回合
move(2, 2) // X 的回合并获得胜利
move(0, 0)  //抛出 GameEndException
move(0, 0) // X 的回合
move(0, 0) // 抛出 AlreadyTakenException
move(1, 0) // O 的回合
move(1, 1) // X 的回合
move(2, 0) // o 的回合
move(2, 2) // X 的回合并获得胜利
输出:
x player wins!
x player wins!
礼包内容预览
九章算法精心整理
《OOD&系统设计求职大礼包》
助力求职,帮你横扫 FLAG offer !
部分资料展示
看完例题是不是一脸懵逼?别担心,虽然OOD面向对象需要有一定的经验,但是其实OOD面试是有套路可寻的。今天就带大家简单、快速地了解 OOD 面试。

有哪些公司常考OOD题型?

Amazon、Google、Bloomberg、TripAdvisor、EMC、Uber...等,这些都是常考OOD题型的公司。尤其是Amazon,在电面中就可能会出OOD 的面试题。

OOD 面试有哪些类型题?

  • 管理类面向对象设计
    1. 停车场问题 Parking lot
    2. 餐厅管理问题 Restaurant
  • 预定类面向对象设计
    1. 酒店预订系统设计 Hotel Reservation
    2. 航空机票预订系统设计 Airline Ticket Reservation
  • 实物类面向对象设计
    1. Vending machine
    2. Juke box
  • 游戏棋牌类面向对象设计
    1. Black Jack
    2. Chinese chess

OOD 面试题的解题套路有哪些?

  • 5C 解题法

Clarify: 通过和面试官交流,去除题目中歧义,确定答题范围。
Core objects: 确定题目所涉及的类,以及类之间的映射关系。
Cases:确定题目中所需要实现的场景和功能。
Classes:通过类图的方式,具体填充题目中设计的类。
Correctness:检查自己的设计,是否满足关键点。
  • SOLID 原则

S.O.L.I.D 准则是由 Robert C. Martin 提出的。应用到 OOD 面试题的解题中,可以有效帮助我们设计出一个高可行性的系统,并且使得整个系统更加容易维护和扩展(easy to maintain and extend)。
S - Single-responsiblity principle 单一责任原则
O - Open-closed principle 开发封闭原则
L - Liskov substitution principle 里氏替换原则
I - Interface segregation principle 接口分离原则
D - Dependency Inversion Principle 依赖反转原则

小白不知从哪里入手

以上内容可以帮助你初步的建立对OOD的框架性认知,但是真正想掌握好OOD,想在面试中快速脱颖而出,你需要进行更加深入系统的学习,九章算法的
《面向对象设计专题班》
由经验丰富的面试官梳理所有OOD面试题目,进行归类汇总,同时提供解题套路,是你备战OOD面试的必听课程。

适合谁

  • 应届毕业生,有1-3年工作经验的工程师
  • 准备求职Facebook, LinkedIn, Google, Amazon等IT企业的工程师
  • 希望学习OOD面向对象设计的同学

谁来讲

文泰来资深FLAG工程师
北美知名院校计算机研究生,拥有多年的面试和面试官经验,尤其擅长系统设计、OOD等设计类题型。善于利用实例讲解,深入浅出。
免费试听内容
  1. 什么是面向对象设计(OOD, Object oriented design)
  2. OOD 面试中常见面试题总结、分类
  3. 如何评判一次OOD面试的表现是好是坏
  4. OOD 面试应对方法
    1. SOLID 原则
    2. 5C 解题法
  5. 设计模式讲解 Design Pattern - Strategy
  6. 高频OOD面试题讲解 - 电梯设计 Elevator Design
免费试听方式
长按二维码,即可报名免费试听
随时报名,随时观看
或点击文末“阅读原文”报名
福利领取
扫码添加九章算法-嘎嘎微信号
回复【微软OOD】+ 本课程试听报名截图
即可获得亚麻常考的OOD15题
福利领取截止时间:1月20日
试听截图参考

“在看”一下,offer拿下

继续阅读
阅读原文