Template Method模式
起源
Delphi的Template Method模式以Object Pascal的虚函数为基础的结构型模式。
目的
定义一组算法操作的框架,定义一些不改变算法结构的子类。
动机
· 更好地封装策略方针并分发到不同的代理。
· 更好地实现复杂算法的代码重用,基类封装不可变的部分,并让子类实现可重载的部分行为方法。
· 更好地通过子类的可扩展部分提供钩子式的操作,但template method模式只允许通过基类来调用。
UML图示:
应用
先让我们看看几个使用了template method模式VCL组件。在下例中,VCL组件中的抽象类Tstream(定义于classes.pas)实现了流拷贝方法CopyFrom(),template