第156章(1 / 1)

小A:“又應該怎樣去理解模板方法模式與對象的封裝性?”

大B:“麵向對象的三大特點:繼承,封裝,多態。對象有內部狀態和外部的行為。封裝是為了信息隱藏,通過封裝來維護對象內部數據的完整性。使得外部對象不能夠直接訪問一個對象的內部狀態,而必須通過恰當的方法才能訪問。在java語言中,采用給對象屬性和方法賦予指定的修改符(public,protected,private)來達到封裝的目的,使得數據不被外部對象惡意的訪問及方法不被錯誤調用從而破壞對象的封裝性。降低方法的訪問級別,也就是最大化的降低方法的可見度是一種很重要的封裝手段。最大化降低方法的可見度除了可以達到信息隱藏外,還能有效的降低類之間的耦合度,降低一個類的複雜度。還可以減少開發人員發生的的錯誤調用。一個類應該隻公開外部需要調用的方法。而所有為公開方法服務的方法都應該聲明為protected或private。如是一個方法不是需要對外公開的方法,但是它需要被子類進行擴展或調用。那麼把它定義為protected。否則應該為private。顯而易見,模板方法模式中的聲明為abstract的基本操作都是需要迫使子類去實現的,它們僅僅是為模板方法placeOrder服務的。它們不應該被AbstractOrder所公開,所以它們應該protected。”

代碼:

模板方法模式中,基本方法應該聲明為protctedabstract。

(本章完)