什么是模块设计模式?
定义:
一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
套路:
必须得有继承,父类一般都是流程和通用部分的封装,子类一般都是具体的功能和逻辑
这个设计模式很简单,也很常见,下面举个例子来说明就好了
模块设计模式案例:统计运算时长
统计使用String和StringBuilder进行100000次拼接,耗时对比。
CalculateTemplate类源码:
public abstract class CalculateTemplate {
public long calculate() {
long benginTime = System.currentTimeMillis();
doWork();
long endTime = System.currentTimeMillis();
return endTime - benginTime;
}
protected abstract void doWork();
}
StringTemplate类源码:
public class StringTemplate extends CalculateTemplate {
@Override
protected void doWork() {
String str = "";
for (int i = 0; i < 100000; i++) {
str = str + i;
}
}
}
StringBuilderTemplate类源码:
public class StringBuilderTemplate extends CalculateTemplate {
@Override
protected void doWork() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100000; i++) {
sb.append(i);
}
}
}
TemplateTest1类源码:
public class TemplateTest1 {
public static void main(String[] args) {
StringTemplate stringTemplate = new StringTemplate();
StringBuilderTemplate stringBuilderTemplate = new StringBuilderTemplate();
System.out.println("string time:" + stringTemplate.calculate());
System.out.println("stringbuilder time:" + stringBuilderTemplate.calculate());
}
}
控制台输出:
string time:28681
stringbuilder time:3
模块设计模式在Android中的应用
- Activity的声明周期回调方法
- AsyncTask线程池的回调
- 自定义View中的onDraw方法
END.