整理 Effective Java 書中 Item 23: Prefer class hierarchies to tagged classes 心得筆記
主旨
在寫Java時,有時我們會想設計一個類別,可以代表「好幾種不同型態的物件」。這時,有些人會選擇用一個「tag 欄位」來做判斷,稱為 tagged class。但這樣的寫法其實有很多問題,本條目會說明為什麼應該用「類別階層」來取代「tagged class」。
🧨 什麼是 Tagged Class?
來看一個實際範例:
整理 Effective Java 書中 Item 23: Prefer class hierarchies to tagged classes 心得筆記
在寫Java時,有時我們會想設計一個類別,可以代表「好幾種不同型態的物件」。這時,有些人會選擇用一個「tag 欄位」來做判斷,稱為 tagged class。但這樣的寫法其實有很多問題,本條目會說明為什麼應該用「類別階層」來取代「tagged class」。
來看一個實際範例: