1. 程式人生 > >【轉載】設計模式_模板方法(學習)

【轉載】設計模式_模板方法(學習)

res bootstrap 重載方法 dex col 算法實現 選擇性 parent abstract

模板方法模式,一般是為了統一子類的算法實現步驟,所使用的一種手段或者說是方式。它在父類中定義一系列算法的步驟,而將具體的實現都推遲到子類。

通常情況下,模板方法模式用於定義構建某個對象的步驟與順序,或者定義一個算法的骨架。

public abstract class ClassLoader {
//這是一個重載方法
public Class<?> loadClass(String name) throws ClassNotFoundException {
return loadClass(name, false);
}

//這裏就是父類算法的定義
protected synchronized Class<?> loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
Class c = findLoadedClass(name);
if (c == null) {
try {
if (parent != null) {
c = parent.loadClass(name, false);
} else {
c = findBootstrapClass0(name);
}
} catch (ClassNotFoundException e) {
c = findClass(name);
}
}
if (resolve) {
resolveClass(c);
}
return c;
}
//這裏留了一個方法給子類選擇性覆蓋
protected Class<?> findClass(String name) throws ClassNotFoundException {
throw new ClassNotFoundException(name);
}

}

【轉載】設計模式_模板方法(學習)