Java模板模式的一种是把共同的模板化行为抽象,如果这些行为是固定模式执行的,还可以再次提供一个固定的模板方法。如人活着就离不开吃饭,喝水,工作,睡觉,凡人概莫能外。
抽象人的行为:
public abstract class Human {
/**
* 吃饭。
*/
public abstract void eat();
/**
* 喝水。
*/
public abstract void drink();
/**
* 工作。
*/
public abstract void work();
/**
* 睡觉。
*/
public abstract void sleep();
/**
* 生活。
*/
public void alive() {
eat();
drink();
work();
sleep();
}
}
某人的具体实例实现:
public class SomePeople extends Human {
private String name;
public SomePeople(String name) {
this.name = name;
}
@Override
public void eat() {
System.out.println(name + "吃饭");
}
@Override
public void drink() {
System.out.println(name + "喝水");
}
@Override
public void work() {
System.out.println(name + "工作");
}
@Override
public void sleep() {
System.out.println(name + "睡觉");
}
}
测试:
private void test() {
Human zhangSan = new SomePeople("张三");
zhangSan.alive();
Human liSi = new SomePeople("李四");
liSi.alive();
}
输出:
张三吃饭
张三喝水
张三工作
张三睡觉
李四吃饭
李四喝水
李四工作
李四睡觉