繼承
program by difference.
通過繼承,可以建立完整的軟體結構分層.其中每一層都可以重用該層次以上的Code.
過度使用繼承的代價是巨大的.應使用組合或者委托來替代繼承.
Template
Method(使用繼承)和Strategy(使用委托)模式解決了相同的問題:分離通用的算法和具體的上下文(DIP).
Template Method模式.
Strategy模式
Template Method模式允許一個通用算法操縱多個可能的具體實作.
而完全遵循DIP的Strategy模式,允許每一個具體實作都可以被多個不同的通用算法操縱.
總結.兩者都用來分離高層算法和底層的具體實作.都允許高層算法獨立于它的具體實作細節.
Strategy模式也允許具體實作細節獨立于高層算法的重用.
[Agile Software Development(Principles,Patterns,and Pracitices)]