如果某個class經(jīng)常因為不同的方向上發(fā)生變化,Divergent
Change就出現(xiàn)了。當(dāng)你看著一個class說[呃,如果新加入一個數(shù)據(jù)庫,我必須修改這三個函數(shù);如果新出現(xiàn)一種金融工具,我必須修改這四個函數(shù)],
那么此時也許將這個對象分成兩個會更好,這么一來每個對象就可以只因一種變化而需要修改。當(dāng)然,往往只有在加入新數(shù)據(jù)庫或新金融工具后,你才能發(fā)現(xiàn)這一
點。針對某一外界變化的所有相應(yīng)修改,都只應(yīng)該發(fā)生在單一class中,而這個新class內(nèi)的所有內(nèi)容都應(yīng)該外界變化。為此,你應(yīng)該找出因著某特定原因
而造成的所有變化,然后運用Extrace Class(149)將它們提煉到另一個class中。