23种设计模式~模板方法的设计模式
来源:互联网 发布:mac修容粉怎么用 编辑:程序博客网 时间:2024/05/22 17:13
(仅当成一个例题)
/*
* 模板方法的设计模式
* 解决的问题:当功能内部一部分实现是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。
*/
public class TestTemplete {
public static void main(String[] args) {
Templete temp = new SubTemplete();
temp.spendTime();
}
}
abstract class Templete {
public abstract void code();
public final void spendTime() {
long start = System.currentTimeMillis();
this.code();//因为是抽象类,不是实例方法,不需要本类调用,需要子类实现后调用,所以可以用this.
long end = System.currentTimeMillis();
System.out.println("花费的时间为:" + (end - start));
}
}
class SubTemplete extends Templete {
public void code() {
//设置标记位是一种常用的思想,学会是很重要的哦!
boolean flag = true;
for (int i = 2; i < 1000; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
}
flag = true;
}
}
}
//这种思想方法在开发中常用!
/*
* 模板方法的设计模式
* 解决的问题:当功能内部一部分实现是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。
*/
public class TestTemplete {
public static void main(String[] args) {
Templete temp = new SubTemplete();
temp.spendTime();
}
}
abstract class Templete {
public abstract void code();
public final void spendTime() {
long start = System.currentTimeMillis();
this.code();//因为是抽象类,不是实例方法,不需要本类调用,需要子类实现后调用,所以可以用this.
long end = System.currentTimeMillis();
System.out.println("花费的时间为:" + (end - start));
}
}
class SubTemplete extends Templete {
public void code() {
//设置标记位是一种常用的思想,学会是很重要的哦!
boolean flag = true;
for (int i = 2; i < 1000; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
}
flag = true;
}
}
}
//这种思想方法在开发中常用!
阅读全文
0 0
- 23种设计模式~模板方法的设计模式
- 23种设计模式-模板方法模式
- 【有毒的设计模式】模板方法模式
- Android的设计模式-模板方法模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 【设计模式】模板方法
- 模板方法设计模式
- 设计模式--模板方法
- 模板方法设计模式
- 设计模式-模板方法
- 设计模式-模板方法
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- STL中的set和multiset使用(一)_boolan(博览网)_第三门课_第一周_作业
- winpcap库使用
- AVL平衡树的旋转
- 个人学习总结一机器学习入门(七)
- UVa 11729 Commando War——贪心
- 23种设计模式~模板方法的设计模式
- js---全面正则表达式语法,常用正则检查表达式手机号email地址url检查
- LeetCode: Longest Palindromic Substring
- MFC控件之Button基本用法 (动、静态按钮)
- Java合并数组的两种实现方式
- Codeforces 797A k-Factorization
- CXF 开源的WebService框架
- 让AndroidStudio提示的时候大小写不敏感
- HTML 5 发展历史