Tuesday, April 16, 2019

OOD Interview Summary



Traffic light oo design
地里有同学知道traffic light design题的相关步骤或者分享吗?经常看见这题但基本没搜出来适合面试但相关答案呀
这种设计OO题,我经常搞不懂的是题目中什么Objects我需要设计。中央控制系统我明白是本题要做的。但是有些真实世界里的联动装置,中央是不应该管的。

举个例子,中央说你绿灯3号由灭变亮。可是灯里电子系统出了故障灯不亮,中央还管这些?

什么objects在题目考核范围,什么不再,如何划线。这是我的难点


我真心觉得跟Design pattern 关系没那么大,design pattern主要考虑设计的扩展,复用等,如何利用OO思想设计,但是OOD题目首先要考虑设计出来功能,比如停车场设计,LRU  这种,开放什么方法,写什么属性在Class中。如果是经验一般的人,弄完这些了才考虑用design pattern 重构,经验充足的当然一上来考虑当前模型适用什么design pattern了,但是如果new grad,没那么多开发经验,根本做不到
推荐《大话设计模式》。这本书写得深入浅出,以至于我用了两天就看完了,明白了不少有用的设计模式

先想想都涉及到什么物体(即名词),然后这些一般就是类。
然后想想继承,多态。比如都是车,但是有不同的类型,大小也会对停车位有影响。
Gayle的书里讲了停车场,但是那种复杂的停车场我不太懂,那停车场还分好多层。

听说amazon还问过棋类的设计。

我写过一个中国象棋。

https://github.com/Linzertorte/ChineseChess

视频 https://www.youtube.com/watch?v=a0cOULTFbTM

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts