大多數(shù)編程環(huán)境都有兩種數(shù)據(jù):結構型別(record types)允許你將數(shù)據(jù)組織成有意義的形式;基本型別(primitive
types)則是構成結構型別的積木塊。結構總是會帶來一定的額外開銷。它們有點像數(shù)據(jù)庫中的表格,或是那些得不償失(只為做一兩件事而創(chuàng)建,卻付出太大
額外開銷)的東西。
對象技術的新手通常不原意在小任務上運用小對象-像是結合數(shù)值和幣別的money class、含一個起始值和一個結束值的range class、電話號碼或郵政編碼(zip)等等的特殊Strings。你可以運用Replace Data Value with Object(175)將原本單獨存在的數(shù)據(jù)值替換為對象,從而走出傳統(tǒng)的洞窟,進入炙手可熱的對象世界。如果欲替換之數(shù)據(jù)值是type code(型別碼),而它并不影響行為,你可以運用Replace Type Code with Class(218)將它換掉。如果你有相依于此type code的條件式,可運用Replace Type Code with Subclass(227)或Replace Type Code with State/Strategy(227)加以處理。
如果你有一組應該總是被放在一起的值域(fields),可運用Extract Class(149)。如果你在參數(shù)列中看到基本型數(shù)據(jù),不妨試試Introduce Parameter Object(295)。如果你發(fā)現(xiàn)自己正從array中挑選數(shù)據(jù),可運用Replace Array with Object(186)。