The Template Method Pattern 模板方法模式
2014-04-04 14:47
651 查看
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。
模板就是一个方法。具体地说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责提供部分实现。
钩子的真正目的:
钩子可以让子类实现算法中的可选部分,或者在钩子对于子类的实现并不重要的时候,子类可以对钩子置之不理。
钩子让子类能够有机会对模板方法中某些即将发生的(或刚刚发生的)步骤做出反应。
钩子让子类有能力为其抽象类做一些决定。
若某些步骤是可选的,将这些步骤实现成钩子,而不是实现成抽象方法,这样就可以让抽象的子类的负荷减轻。
好莱坞原则:别调用我们,我们会调用你。
高层组件对待低层组件的方式是“别调用我们,我们会调用你.”
荒野中的模板方法:
模板就是一个方法。具体地说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责提供部分实现。
钩子的真正目的:
钩子可以让子类实现算法中的可选部分,或者在钩子对于子类的实现并不重要的时候,子类可以对钩子置之不理。
钩子让子类能够有机会对模板方法中某些即将发生的(或刚刚发生的)步骤做出反应。
钩子让子类有能力为其抽象类做一些决定。
若某些步骤是可选的,将这些步骤实现成钩子,而不是实现成抽象方法,这样就可以让抽象的子类的负荷减轻。
好莱坞原则:别调用我们,我们会调用你。
高层组件对待低层组件的方式是“别调用我们,我们会调用你.”
荒野中的模板方法:
相关文章推荐
- SLF4J 项目中 日志文件的处理
- java多线程学习(二)——wait/notify
- 【设计模式】门面
- ffmpeg+nginx建立rtmp服务器,播放摄像头流
- VS2010编译错误: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403的解决方法 .
- mysql关联更新表
- NDK: 处理用户交互事件
- 37个简单实用的Ubuntu快捷键
- jQuery学习第一课
- cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce
- maven2.0学习笔记
- jQuery学习第一课
- 精通JavaScript攻击框架:AttackAPI
- Google官方下拉刷新组件---SwipeRefreshLayout
- HDUOJ----2487Ugly Windows
- jQuery.noConflict();
- Java中byte与16进制字符串的互相转换
- mysql在大数据量下,如何优化SQL语句?
- ajax进行邮箱是否已经注册验证出的错
- C# 观察者模式(委托的使用)