面向对象之OODesign

2022/06/01 OOP 共 648 字,约 2 分钟

面向对象之 OODesign

常用表达:

  • 假设 key 是 int,简化问题
  • 假设适合存储
  • 假设输入是合法的,不需要 check 输入合法性

应用

参考: 常见问题

Question 
Design a hash mapSolution
Design a least recently used cacheSolution
Design a call centerSolution
Design a deck of cardsSolution
Design a parking lotSolution
Design a chat serverSolution
Design a circular arrayContribute
Add an object-oriented design questionContribute

##

呼叫中心:

  • 定义操作员,上级,上上级。 这 3 个都是人,继承于一个对象,每次 Init 时先 super init
  • 定义呼叫中心,进行流转
  • 定义电话实体,有状态机

一部牌

  • 定义红桃还是黑桃这样 suit
  • 定义卡片,组合 suit, 有属性分数
  • 定义手,内部有卡片集合,支持添加卡片,支持输出当前分数
  • 定义桌子,用来发牌、洗牌

停车场

  • 定义车,车有多种类型
  • 定义子类,继承车
  • 定义停车位
  • 停车场有多层,定义层,层组合了停车位 list
  • 定义停车场,停车场组合了层 list

聊天室

  • 定义 User
  • 定义 UserService
  • 定义聊天基类,chat_id, message list, user list
  • 定义私人聊天
  • 定义群聊天
  • 定义消息 message

也可以看:Grokking the Object Oriented Design Interview

Search

    Table of Contents