準備:
public abstract class Game {
abstract void init();
abstract void start();
abstract void end();
public final void template() {
init();
start();
end();
}
}
public class LOL extends Game {
private static final String NAME = "LOL";
@Override
void init() {
System.out.println(NAME + " init");
}
@Override
void start() {
System.out.println(NAME + " start");
}
@Override
void end() {
System.out.println(NAME + " end");
}
}
public class DNF extends Game {
private static final String NAME = "DNF";
@Override
void init() {
System.out.println(NAME + " init");
}
@Override
void start() {
System.out.println(NAME + " start");
}
@Override
void end() {
System.out.println(NAME + " end");
}
}
測試:
public class TemplateTest {
public static void main(String[] args) {
DNF dnf = new DNF();
dnf.template();
System.out.println("=============");
LOL lol = new LOL();
lol.template();
}
}