《Java與模式》這本書對于我的影響很大,我總結了書中的幾條編程原則,總結得不全面,請大家補充。
1“開-閉”原則:一個軟件實體應該對擴展開放,對修改關閉,這個原則說的是,在設計一個模塊的時候,應當使這個模塊可以在不被修改的前提下被擴展,換言之,應當可以在不被修改源代碼的情況下改變這個模塊的行為。
2對可變性的封裝原則:找到一個系統的可變因素,將它封裝起來。
3將一個進行多次條件轉移的商業邏輯封裝到不同的具體子類中,從而使用多態性來代替條件轉移語句。
4由于抽象類不可以實例化,因此一個設計師設計一個新的抽象類,一定是用來繼承的,而這一聲明倒過來也是對的:具體子類不是用來繼承的。
5在一個從抽象類到多個具體類的繼承關系中,共用的代碼應當盡量移動到抽象類里。
6與代碼的移動方向相反,數據的移動方向是從抽象類到具體類。
7一般而言,如果兩個具體類A和B有繼承關系,那么一個最簡單的修改方法應當是建立一個抽象類C,然后讓類A和類B成為抽象類C的子類。
8要針對接口編程,不要針對實現編程,要保證做到這一點,一個具體Java類應當只實現Java接口和抽象Java類中而不應當給出多余的方法。
9只要一個被引用的對象存在抽象類型,就應當在任何引用此對象的地方使用抽象類型,包括參量的類型聲明、方法返回類型的聲明、屬性變量的類型聲明等。
10優先考慮將一個類設置為不變類,即使一個類必須是可變類,在給它的屬性設置賦值方法的時候,也要保持吝嗇的態度。
11盡量降低成員的訪問權限。
12如果一個類可以設置成package-private的,那么就不應當將它設置為public。
13在需要一個變量的時候才聲明它,可以有效地限制局部變量的有效范圍。
14一般而言,for循環比while循環稍好一點。
15要針對抽象編程,不要針對具體編程。