l

2016年3月30日 星期三

用Replace Data Value with Object移除Primitive Obsession怪味道

March 27 21:18~21:50

螢幕截圖 2016-03-27 23.56.55

 

▼以下範例截錄自《Refactoring》一書。Order類別用String資料成員_customer來代表客戶,這是一種Primitive Obsession怪味道。

螢幕截圖 2016-03-27 21.24.12

***

▼套用Replace Data Value with Object重構很簡單,就是把String類別(data value)用物件取代,因此先新增Customer類別。

螢幕截圖 2016-03-27 21.32.04

 

▼接著將Order類別的_customer資料成員的型別由String改成Customer。

螢幕截圖 2016-03-27 21.37.15

 

這個例子很簡單,感覺有沒有把String換成Customer好像都差不多。如果Customer不只是代表名字,而有更多的資料成員(屬性)和操作,那麼套用Replace Data Value with Object重構效果就會比較顯著。

***

友藏內心獨白:用物件換資料,不然怎麼叫做物件導向XD。

沒有留言:

張貼留言