敏捷软件开发 - 原则、模式与实践 —— 设计模式(二)TEMPLATE METHOD模式和STRATEGY模式

本文为敏捷软件开发 - 原则、模式与实践系列的一部分。

本文对应原书第14章

介绍

TEMPLATE METHOD模式STRATEGY模式都可以分离通用的算法和具体的上下文。在软件设计中经常会看到这样的需求。我们有一个通用的算法。为了遵循依赖倒置原则(DIP),我们想确保这个通用的算法不要依赖于具体的实现。我们更想使这个通用的算法和具体的实现都依赖于抽象。不同的是,TEMPLATE METHOD模式使用继承来解决问题,而STRATEGY模式使用的则是委托。

TEMPLATE METHOD模式

图1

STRATEGY模式

图2

结论

TEMPLATE METHOD模式STRATEGY模式都可以用来分离高层的算法和低层的具体实现细节。都允许高层的算法独立于它的具体实现细节重用。此外,STRATEGY模式也允许具体实现细节独立于高层的算法重用,不过要以一些额外的复杂性、内存以及运行时间开销作为代价。

完整内容请查看敏捷软件开发 - 原则、模式与实践系列

你可能感兴趣的:(敏捷软件开发 - 原则、模式与实践 —— 设计模式(二)TEMPLATE METHOD模式和STRATEGY模式)