跟其他壞味道一樣,Primitive Obsession
一開始的時候也是不容易注意到。畢竟,開發者心理可能會想著:這只是個存放變數的欄位而已,使用欄位來處理,比起建立一個新類別簡單許多。漸漸的,其他欄位也用同樣手法處理。
Replace Primitive with Object
。Replace Type Code with Subclasses
,接著可以再以 Replace Conditional with Polymorphism
處理。Extract Class
及 Introduce Parameter Object
來抽取。