最近看了Java與模式這個pdf文檔,學習了裏面的設計模式:
1.開-閉原則
2.里氏代換原則
3.依賴倒置原則
4.合成/聚合複用原則
5.迪米特原則
6.接口隔離原則
For DIP -- 依賴倒置的解釋
Hollywood 原則:Don't call us,We'll call you
高層模塊不應該依賴於低層模塊,二者都應該依賴於抽象,
高層模塊包含了一個應用種的重要策略選擇和業務模型,正是這些高層模塊才使得其所在的應用程序區別於其他。如果它依賴於底層模塊,那麼底層模塊的改動會直接影響到高層模塊,從而迫使他們依次錯誤改動,這是非常荒謬的!(Martin寫的太精彩了,這也正是過程化設計的問題所在)
DIP是FrameWork設計的核心原則,它體現了接口所有權的倒置:客戶擁有接口!!
總結:無論採用何種語言來編寫程序,如果程序的依賴關係是倒置的,它就是面向對象的設計。如果程序的依賴關係不是倒置的,他就是過程化的設計