有時你會看到兩個classes過于親密,花費太多時間去探究彼此的private成分。如果這發(fā)生在兩個[人]之間,我們不必做衛(wèi)道之士;但對于classes,我們希望它們嚴守清規(guī)。
就像古代戀人一樣,過分狎昵的classes必須拆散。你可以采用Move Method(142)和Move Field(146)
幫它們劃清界線,從而減少狎昵行經(jīng)。你可以看看是否運用Change Bidirectional Association to Unidirectional(200)讓其中一個class對另一個斬斷情絲。如果兩個classes實在是情投意合,可以運用Extract Class(149)把兩者共同點提煉到一個安全地點,讓它們坦蕩地使用這個新class。或者也可以嘗試運用Hide Delegate(157)讓另一個class來為它們傳遞相思情。
繼承(inheritance)往往造成過度親密,因為subclass對superclass的了解總是超過superclass的主管愿望。如果你覺得該讓這個孩子獨自生活了,請運用Replace Inheritance with Delegation(352)讓它離開繼承體系。