Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

设计模式之模板方法(Template Method)

来源: kt8668 分享至:

模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

模板方法模式UML图:


为了防止模板方法被覆盖,通常将模板方法定义为final方法。

对模板方法进行挂钩(钩子方法)

钩子是一种被声明在父类中的方法,通常在模板方法中被调用,但父类中通常只会给出空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。如果子类需要干涉模板方法中的一些行为,可以实现或者覆盖父类中定义好的钩子方法。

模板方法模式和策略模式都能封装算法,不过一个是使用继承,一个是使用组合。

模板方法模式相对比较好理解,而且应用也比较广泛,在其他很多模式中,我们都能看到模板方法模式的身影,比如工厂方法模式就是模板方法模式的一个特殊版本。

参考资料:

Head First 设计模式 (中国电力出版社)

  • 大小: 7.2 KB
  • 查看图片附件

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史