EffectiveJava11-30-2018

十六、複合優先於繼承

        複合:在新的類中增加一個私有域,他引用現有類的的一個實例。(現有的類變成了新類的一個組件,裝飾器模式)

        wrapper class包裝類

繼承的功能非常強大,但是也存在諸多問題,因爲它違背了封裝的原則。只有當子類和超類之間確實存在子類型關係時,使用繼承纔是恰當的。

十七、要麼爲繼承而設計,並提供文檔說明,要麼就禁止繼承。

十八、接口優於抽象類

        abstract與interface的區別:
抽象類允許包含某些方法的實現,接口則不允許。

骨架實現類:使用接口來實現類型。骨架實現類接管了所有與接口實現相關的工作。(適配器模式)

十九、接口只用於定義類型

二十、類層次優於標籤類

二十一、用函數對象表示策略

策略模式

意圖:將可互換的方法封裝在各自獨立的類中,並且讓每個方法都實現一個公共的操作。

Stateful vs Stateless

有狀態就是有數據存儲功能。有狀態對象(Stateful Bean),就是有實例變量的對象,可以保存數據,是非線程安全的。在不同方法調用間不保留任何狀態。

無狀態就是一次操作,不能保存數據。無狀態對象(Stateless Bean),就是沒有實例變量的對象,不能保存數據,是不變類,是線程安全的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章