技术开发 频道

浅析设计模式之模板方法

【IT168 管理】

模板方法的定义 

    在微软的WebCast上,李建中老师有个设计模式的系列讲座,其中在模板方法说到:如果你只想学习一种设计模式就学习模板方法吧。那我们就来瞧瞧这个大众设计模式是什么样子的。 

    要说起模板方法就要从她所从属的分类开始说起。 

    模板方法属于行为型设计模式,行为型设计模式主要关注对象之间职责分配和算法的问题。类行为型模式使用继承来分配类之间的职责,模板方法就是个类行为型模式。对象行为型模式使用组合来分配职责。在我们构建软件的过程中大部分时候我们都是在思考实体之间的职责,怎样的职责分配最合理,不至于过重,又不至于过轻,而且又不越权。 

    模板方法Gof的定义是:在一个方法里定义算法的骨架,将一些步骤延迟到其子类。模板方法使得子类有机会重新定义算法的某些步骤而不改变算法的结构。模板方法实际上是利用多态这种晚绑定机制来将一些执行系列延迟到子类(运行时)。如下图:

    其中父类Application中的DoSomething()方法就是一个模板方法。模板方法顾名思义就是定义一个模板或框架,这个框架里调用了其他两个方法Operation1和Operation2,这两个方法是虚方法或者抽象方法以允许子类MyApplication有机会覆盖掉其定义。父类仅仅作一些抽象性的工作,而具体的事情由子类来完成。

0
相关文章