模板方法设计模式
来源:互联网 发布:js触发按钮点击事件 编辑:程序博客网 时间:2024/06/07 14:43
某一种设计模式针对特定的问题,不是万能的,所以要针对特定的场景,去解决问题。
模板方法模式:Templete Method,定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。
例如做煎饼,其流程是一样的,但是每个人的口味和禁忌不一样,有些人爱吃白面,有些人爱吃玉米面,有些人吃辣,有些人不吃辣。应该先搞清楚做煎饼的套路,而具体的实现要根据不同人的口味具体再去做。
看例子,模拟剪刀石头布游戏:
public class Test {
public static void main(String[] args) {
Games g = new Girl();
g.play();
}
}
class Girl extends Games {
@Override
public boolean result() {
java.util.Random r = new java.util.Random();
r.nextBoolean();
}
}
class Girl2 extends Games {
@Ovrride
public boolean result {
return false;
}
}
abstract class Games {
public void play() {
System.out.println("游戏开始,把手背到后面,出拳");
System.out.println("结果:");
if(resutl()) {
System.out.println("恭喜你你赢了");
} else {
System.out.println("不好意思,你输了");
}
}
public abstract boolean result() {//这个方法由子类决定
}
}
在上面的例子中,play()方法就规定了算法的框架,但是其中有一些细节,例如公布结果的result方法不确定,是由子类具体规定的
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 【设计模式】模板方法
- 模板方法设计模式
- 设计模式--模板方法
- 模板方法设计模式
- 设计模式-模板方法
- 设计模式-模板方法
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 设计模式-模板方法
- 模板方法设计模式
- BEA-002616 问题解决
- fileUpload上传视频
- 排序算法之直接插入排序
- shell实践(一)读取一个文件输出文件内容
- 磁盘空间满了之后MySQL会怎样
- 模板方法设计模式
- Elasticsearch Fields _source 返回值字段设置
- ISLR_Propotion
- matlab实现将彩色图像(R,G,B)色分量的直方图显示出
- Windows环境下Android Studio v1.0安装教程
- Android常见的按钮监听器实现方式
- 光标变成黑块变粗 影响插入 解决方法
- Eclipse调试Bug的七种常用技巧
- 低可见性覆盖高可见性