📘 深度概覽
作者背景#
本書由 ByteByteGo 出版,列名作者為 Alex Xu,並由具備一線科技公司面試經驗的講師團隊共同撰寫。Alex Xu 為 ByteByteGo 創辦人,著有暢銷的《System Design Interview》Vol. 1 與 Vol. 2,將高層次系統設計面試題庫推向業界標準。隨著 Amazon、Bloomberg、Uber 等公司逐步把 Object-Oriented Design 面試獨立為一輪,ByteByteGo 將團隊在 OOP、SOLID、設計模式與低階設計面試上的教學經驗整理成本書,補上 system design 與 coding 之間的空白。
完整摘要#
本書處理一個越來越普遍但缺乏專書的面試題型:物件導向設計(OOD)面試。它與演算法面試重視時間複雜度、與系統設計面試重視分散式架構都不同——OOD 面試在 45–60 分鐘內要求候選人為一個真實系統(如停車場、自動販賣機)提出乾淨、可擴充的低階類別設計,並能轉化為可運作的程式碼。作者主張 OOD 不只是「畫類別圖」,而是綜合考核產品意識、系統思維、SOLID 應用與程式碼品質。
第 1 章先界定 OOD 面試的特色與評分維度。第 2 章提出貫穿全書的 4 步驟框架:(1) 需求蒐集、(2) 辨識核心物件(名詞 → 物件、動詞 → 方法)、(3) 設計類別圖與程式碼(top-down / bottom-up,套用低耦合高內聚)、(4) 收尾與擴充討論,並區分 UML diagram、code skeleton、working code 三種交付形式。第 3 章補上 OOP 基礎:封裝、繼承、多型、抽象、SOLID 五原則、以及常用的 Strategy、State、Factory、Observer、Singleton 等設計模式。
第 4–14 章為十一個經典案例研究,依序套用框架:Parking Lot、Movie Ticket Booking、Unix File Search、Vending Machine、Elevator System、Grocery Store、Tic-Tac-Toe、Blackjack、Shipping Locker、ATM、Restaurant Management。每章皆從需求釐清、列出名詞與動詞、繪製類別圖、實作核心類別(多以 Java 或 Python 呈現)、到延伸討論可擴充性與設計取捨,並標示出哪些設計模式被套用、為什麼。透過十一題的反覆練習,讀者能內化框架、累積物件建模的肌肉記憶。
本書的貢獻與定位#
相較於 Gang of Four 的《Design Patterns》偏重模式目錄、Robert C. Martin 的《Clean Code》與《Agile Software Development》強調原則層面,本書是少數直接以面試題型為目標、把 OOP 與 SOLID 落地到 45 分鐘內可完成設計題的專書。它與 Alex Xu 的《System Design Interview》Vol. 1/2 形成互補——後者處理高層次分散式架構,本書補上低階類別設計的面試輪。目標讀者為準備 Amazon、Bloomberg、Uber 等公司 OOD 面試的中高階軟體工程師,以及希望系統化整理 OOP 思維的開發者。
