天天看點

Template Method模式和Strategy模式[繼承與委托]

繼承

program by difference.

通過繼承,可以建立完整的軟體結構分層.其中每一層都可以重用該層次以上的Code.

過度使用繼承的代價是巨大的.應使用組合或者委托來替代繼承.

Template

Method(使用繼承)和Strategy(使用委托)模式解決了相同的問題:分離通用的算法和具體的上下文(DIP).

Template Method模式.

Template Method模式和Strategy模式[繼承與委托]

Strategy模式

Template Method模式和Strategy模式[繼承與委托]

Template Method模式允許一個通用算法操縱多個可能的具體實作.

而完全遵循DIP的Strategy模式,允許每一個具體實作都可以被多個不同的通用算法操縱.

總結.兩者都用來分離高層算法和底層的具體實作.都允許高層算法獨立于它的具體實作細節.

Strategy模式也允許具體實作細節獨立于高層算法的重用.

[Agile Software Development(Principles,Patterns,and Pracitices)]